From: Austin Clements Date: Fri, 24 Jul 2015 19:38:16 +0000 (-0400) Subject: runtime: make notetsleep_internal nowritebarrier X-Git-Tag: go1.5beta3~51 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=dff9108d988c3bd1ef323db2938631132f2337fe;p=gostls13.git 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 Reviewed-by: Russ Cox --- 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()