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