summaryrefslogtreecommitdiffhomepage
path: root/pkg/sync/spin_legacy_unsafe.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/sync/spin_legacy_unsafe.go')
-rw-r--r--pkg/sync/spin_legacy_unsafe.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/pkg/sync/spin_legacy_unsafe.go b/pkg/sync/spin_legacy_unsafe.go
new file mode 100644
index 000000000..61fc7320e
--- /dev/null
+++ b/pkg/sync/spin_legacy_unsafe.go
@@ -0,0 +1,25 @@
+// Copyright 2020 The gVisor Authors.
+//
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// +build go1.13
+// +build !go1.14
+
+package sync
+
+import (
+ "runtime"
+ _ "unsafe" // for go:linkname
+)
+
+//go:linkname canSpin sync.runtime_canSpin
+func canSpin(i int) bool
+
+//go:linkname doSpin sync.runtime_doSpin
+func doSpin()
+
+func goyield() {
+ // goyield is not available until Go 1.14.
+ runtime.Gosched()
+}