aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorMichael Pratt <mpratt@google.com>2024-09-17 15:42:26 -0400
committerGopher Robot <gobot@golang.org>2024-10-30 14:59:34 +0000
commit3a6795554daf96d4e01ab02f999a1ea7dde2660c (patch)
tree6b489a1f0f48b1193ff8d00712764d6281d7b179 /src/runtime
parente25b913127ac8ba26c4ecc39288c7f8781f4ef5d (diff)
downloadgo-3a6795554daf96d4e01ab02f999a1ea7dde2660c.tar.xz
internal/runtime/maps: enable race for map functions in internal/runtime/maps
For #54766. Cq-Include-Trybots: luci.golang.try:gotip-linux-amd64-longtest-swissmap Change-Id: Iebc7f5482299cb7c4ecccc4c2eb46b4bc42c5fc3 Reviewed-on: https://go-review.googlesource.com/c/go/+/616459 Reviewed-by: Keith Randall <khr@google.com> Auto-Submit: Michael Pratt <mpratt@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Keith Randall <khr@golang.org>
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/race.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/runtime/race.go b/src/runtime/race.go
index 75ca4f86d5..6b7bbe5245 100644
--- a/src/runtime/race.go
+++ b/src/runtime/race.go
@@ -168,6 +168,11 @@ func raceReadObjectPC(t *_type, addr unsafe.Pointer, callerpc, pc uintptr) {
}
}
+//go:linkname race_ReadObjectPC internal/race.ReadObjectPC
+func race_ReadObjectPC(t *abi.Type, addr unsafe.Pointer, callerpc, pc uintptr) {
+ raceReadObjectPC(t, addr, callerpc, pc)
+}
+
func raceWriteObjectPC(t *_type, addr unsafe.Pointer, callerpc, pc uintptr) {
kind := t.Kind_ & abi.KindMask
if kind == abi.Array || kind == abi.Struct {
@@ -181,12 +186,27 @@ func raceWriteObjectPC(t *_type, addr unsafe.Pointer, callerpc, pc uintptr) {
}
}
+//go:linkname race_WriteObjectPC internal/race.WriteObjectPC
+func race_WriteObjectPC(t *abi.Type, addr unsafe.Pointer, callerpc, pc uintptr) {
+ raceWriteObjectPC(t, addr, callerpc, pc)
+}
+
//go:noescape
func racereadpc(addr unsafe.Pointer, callpc, pc uintptr)
//go:noescape
func racewritepc(addr unsafe.Pointer, callpc, pc uintptr)
+//go:linkname race_ReadPC internal/race.ReadPC
+func race_ReadPC(addr unsafe.Pointer, callerpc, pc uintptr) {
+ racereadpc(addr, callerpc, pc)
+}
+
+//go:linkname race_WritePC internal/race.WritePC
+func race_WritePC(addr unsafe.Pointer, callerpc, pc uintptr) {
+ racewritepc(addr, callerpc, pc)
+}
+
type symbolizeCodeContext struct {
pc uintptr
fn *byte