aboutsummaryrefslogtreecommitdiff
path: root/misc/cgo/test/cgo_thread_lock.go
diff options
context:
space:
mode:
Diffstat (limited to 'misc/cgo/test/cgo_thread_lock.go')
-rw-r--r--misc/cgo/test/cgo_thread_lock.go53
1 files changed, 0 insertions, 53 deletions
diff --git a/misc/cgo/test/cgo_thread_lock.go b/misc/cgo/test/cgo_thread_lock.go
deleted file mode 100644
index 1c983375d9..0000000000
--- a/misc/cgo/test/cgo_thread_lock.go
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2016 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.
-
-//go:build linux && freebsd && openbsd
-
-package cgotest
-
-/*
-#include <unistd.h>
-#include <sys/syscall.h>
-void Gosched(void);
-static int Ctid(void) { Gosched(); return syscall(SYS_gettid); }
-*/
-import "C"
-
-import (
- "runtime"
- "syscall"
- "testing"
- "time"
-)
-
-//export Gosched
-func Gosched() {
- runtime.Gosched()
-}
-
-func init() {
- testThreadLockFunc = testThreadLock
-}
-
-func testThreadLock(t *testing.T) {
- stop := make(chan int)
- go func() {
- // We need the G continue running,
- // so the M has a chance to run this G.
- for {
- select {
- case <-stop:
- return
- case <-time.After(time.Millisecond * 100):
- }
- }
- }()
- defer close(stop)
-
- for i := 0; i < 1000; i++ {
- if C.int(syscall.Gettid()) != C.Ctid() {
- t.Fatalf("cgo has not locked OS thread")
- }
- }
-}