mirror of
https://github.com/golang/go
synced 2024-11-22 03:44:39 -07:00
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>
This commit is contained in:
parent
493517bb5c
commit
a9bd84e037
@ -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().
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
11
src/runtime/testdata/testprogcgo/callback.go
vendored
11
src/runtime/testdata/testprogcgo/callback.go
vendored
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user