runtime_amd64.go raw
1 // Copyright 2020 The gVisor Authors.
2 //
3 // Use of this source code is governed by a BSD-style
4 // license that can be found in the LICENSE file.
5
6 //go:build amd64
7
8 package sync
9
10 import (
11 "sync/atomic"
12 )
13
14 const supportsWakeSuppression = true
15
16 // addrOfSpinning returns the address of runtime.sched.nmspinning.
17 func addrOfSpinning() *int32
18
19 // nmspinning caches addrOfSpinning.
20 var nmspinning = addrOfSpinning()
21
22 //go:nosplit
23 func preGoReadyWakeSuppression() {
24 atomic.AddInt32(nmspinning, 1)
25 }
26
27 //go:nosplit
28 func postGoReadyWakeSuppression() {
29 atomic.AddInt32(nmspinning, -1)
30 }
31