aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/lock_futex.go
diff options
context:
space:
mode:
authorAustin Clements <austin@google.com>2015-07-24 15:38:16 -0400
committerAustin Clements <austin@google.com>2015-07-27 19:58:58 +0000
commitdff9108d988c3bd1ef323db2938631132f2337fe (patch)
treecbfdeee9d6ba3cc0d80fd779899d25a882d93efb /src/runtime/lock_futex.go
parentcf225a1748a9efe401edd3cf8879692391a31d8b (diff)
downloadgo-dff9108d988c3bd1ef323db2938631132f2337fe.tar.gz
go-dff9108d988c3bd1ef323db2938631132f2337fe.zip
runtime: make notetsleep_internal nowritebarrier
When notetsleep_internal is called from notetsleepg, notetsleepg has just given up the P, so write barriers are not allowed in notetsleep_internal. Change-Id: I1b214fa388b1ea05b8ce2dcfe1c0074c0a3c8870 Reviewed-on: https://go-review.googlesource.com/12647 Reviewed-by: Rick Hudson <rlh@golang.org> Reviewed-by: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/runtime/lock_futex.go')
-rw-r--r--src/runtime/lock_futex.go4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/runtime/lock_futex.go b/src/runtime/lock_futex.go
index 1765a6ce66..768fd5769f 100644
--- a/src/runtime/lock_futex.go
+++ b/src/runtime/lock_futex.go
@@ -144,7 +144,11 @@ func notesleep(n *note) {
}
}
+// May run with m.p==nil if called from notetsleep, so write barriers
+// are not allowed.
+//
//go:nosplit
+//go:nowritebarrier
func notetsleep_internal(n *note, ns int64) bool {
gp := getg()