about summary refs log tree commit diff
path: root/vendor/modernc.org/libc/sync.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/modernc.org/libc/sync.go')
-rw-r--r--vendor/modernc.org/libc/sync.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/vendor/modernc.org/libc/sync.go b/vendor/modernc.org/libc/sync.go
new file mode 100644
index 0000000..05fe4d4
--- /dev/null
+++ b/vendor/modernc.org/libc/sync.go
@@ -0,0 +1,22 @@
+// Copyright 2021 The Libc 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 !(linux && (amd64 || arm64 || loong64))
+
+package libc // import "modernc.org/libc"
+
+import (
+	"sync/atomic"
+)
+
+var __sync_synchronize_dummy int32
+
+// __sync_synchronize();
+func X__sync_synchronize(t *TLS) {
+	if __ccgo_strace {
+		trc("t=%v, (%v:)", t, origin(2))
+	}
+	// Attempt to implement a full memory barrier without assembler.
+	atomic.StoreInt32(&__sync_synchronize_dummy, atomic.LoadInt32(&__sync_synchronize_dummy)+1)
+}