aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/export_futex_test.go
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2019-11-04 20:45:48 -0800
committerIan Lance Taylor <iant@golang.org>2019-11-05 05:22:07 +0000
commit3c0fbeea7d57fe474865061d5c0bf3b7a01877c8 (patch)
tree06c0fcabf26e0c17f8b9b1c3624742b14a616bbb /src/runtime/export_futex_test.go
parentd51f7f39704fd8517739bcd6ad743741983b2234 (diff)
downloadgo-3c0fbeea7d57fe474865061d5c0bf3b7a01877c8.tar.gz
go-3c0fbeea7d57fe474865061d5c0bf3b7a01877c8.zip
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 <iant@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/runtime/export_futex_test.go')
-rw-r--r--src/runtime/export_futex_test.go11
1 files changed, 10 insertions, 1 deletions
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
+}