From: Ian Lance Taylor Date: Tue, 5 Nov 2019 04:45:48 +0000 (-0800) Subject: runtime: disable preemption during test calls to futexsleep X-Git-Tag: go1.14beta1~409 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3c0fbeea7d57fe474865061d5c0bf3b7a01877c8;p=gostls13.git runtime: disable preemption during test calls to futexsleep Fixes #35347 Change-Id: If7380f29e97a5abe86cdd5e2853323de7997ccfc Reviewed-on: https://go-review.googlesource.com/c/go/+/205378 Run-TryBot: Ian Lance Taylor Reviewed-by: Cherry Zhang --- diff --git a/src/runtime/export_futex_test.go b/src/runtime/export_futex_test.go index 5e272364d1..a727a93114 100644 --- a/src/runtime/export_futex_test.go +++ b/src/runtime/export_futex_test.go @@ -6,5 +6,14 @@ package runtime -var Futexsleep = futexsleep var Futexwakeup = futexwakeup + +//go:nosplit +func Futexsleep(addr *uint32, val uint32, ns int64) { + // Temporarily disable preemption so that a preemption signal + // doesn't interrupt the system call. + poff := debug.asyncpreemptoff + debug.asyncpreemptoff = 1 + futexsleep(addr, val, ns) + debug.asyncpreemptoff = poff +}