aboutsummaryrefslogtreecommitdiff
path: root/src/runtime
diff options
context:
space:
mode:
authorTim King <taking@google.com>2024-09-10 22:56:40 +0000
committerTim King <taking@google.com>2024-09-10 23:32:53 +0000
commita9bd84e03786e8bd4bfb3780ce3283b0f3e1f3bf (patch)
tree0293cc8676b63aa707c44cd9e340eb23757a387b /src/runtime
parent493517bb5c84e8f88ba74d4d2e8c3ac58fda7839 (diff)
downloadgo-a9bd84e03786e8bd4bfb3780ce3283b0f3e1f3bf.tar.xz
Revert "runtime: Goexit on C-created thread report more useful error message"
This reverts CL 602296. Reason for revert: Failing on several builders. Change-Id: I889c566d34294032c330d4f9402300ad0d5d3bf5 Reviewed-on: https://go-review.googlesource.com/c/go/+/611919 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Ian Lance Taylor <iant@google.com>
Diffstat (limited to 'src/runtime')
-rw-r--r--src/runtime/panic.go2
-rw-r--r--src/runtime/proc.go3
-rw-r--r--src/runtime/proc_test.go10
-rw-r--r--src/runtime/testdata/testprogcgo/callback.go11
4 files changed, 0 insertions, 26 deletions
diff --git a/src/runtime/panic.go b/src/runtime/panic.go
index ed08bf4f30..bd1ea096aa 100644
--- a/src/runtime/panic.go
+++ b/src/runtime/panic.go
@@ -614,8 +614,6 @@ func deferreturn() {
// without func main returning. Since func main has not returned,
// the program continues execution of other goroutines.
// If all other goroutines exit, the program crashes.
-//
-// It crashes if called from a thread not created by the Go runtime.
func Goexit() {
// Create a panic object for Goexit, so we can recognize when it might be
// bypassed by a recover().
diff --git a/src/runtime/proc.go b/src/runtime/proc.go
index 0909d138ff..c4db86225d 100644
--- a/src/runtime/proc.go
+++ b/src/runtime/proc.go
@@ -4321,9 +4321,6 @@ func gdestroy(gp *g) {
if locked && mp.lockedInt != 0 {
print("runtime: mp.lockedInt = ", mp.lockedInt, "\n")
- if mp.isextra {
- throw("runtime.Goexit called in a thread that was not created by the Go runtime")
- }
throw("exited a goroutine internally locked to the OS thread")
}
gfput(pp, gp)
diff --git a/src/runtime/proc_test.go b/src/runtime/proc_test.go
index 0a54240984..a930ea707f 100644
--- a/src/runtime/proc_test.go
+++ b/src/runtime/proc_test.go
@@ -1158,13 +1158,3 @@ func TestBigGOMAXPROCS(t *testing.T) {
t.Errorf("output:\n%s\nwanted:\nunknown function: NonexistentTest", output)
}
}
-
-func TestCgoToGoCallGoexit(t *testing.T) {
- if runtime.GOOS == "plan9" || runtime.GOOS == "windows" {
- t.Skipf("no pthreads on %s", runtime.GOOS)
- }
- output := runTestProg(t, "testprogcgo", "CgoToGoCallGoexit")
- if !strings.Contains(output, "runtime.Goexit called in a thread that was not created by the Go runtime") {
- t.Fatalf("output should contain %s, got %s", "runtime.Goexit called in a thread that was not created by the Go runtime", output)
- }
-}
diff --git a/src/runtime/testdata/testprogcgo/callback.go b/src/runtime/testdata/testprogcgo/callback.go
index 39993f13a6..319572fe10 100644
--- a/src/runtime/testdata/testprogcgo/callback.go
+++ b/src/runtime/testdata/testprogcgo/callback.go
@@ -38,21 +38,10 @@ import (
func init() {
register("CgoCallbackGC", CgoCallbackGC)
- register("CgoToGoCallGoexit", CgoToGoCallGoexit)
}
-func CgoToGoCallGoexit() {
- goexit = true
- C.foo()
-}
-
-var goexit = false
-
//export go_callback
func go_callback() {
- if goexit {
- runtime.Goexit()
- }
if e := extraMInUse.Load(); e == 0 {
fmt.Printf("in callback extraMInUse got %d want >0\n", e)
os.Exit(1)