| // 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. | |
| // +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 | |
| } |