aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/export_futex_test.go
blob: 34c970d6d2d337d065450a8a51647ab791e282fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Copyright 2013 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

//go:build dragonfly || freebsd || linux
// +build dragonfly freebsd linux

package runtime

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
}