From 3da4281df1b0c7ea11b524ff19fc2f409b8e58c0 Mon Sep 17 00:00:00 2001 From: qiulaidongfeng <2645477756@qq.com> Date: Mon, 9 Sep 2024 09:01:23 +0000 Subject: runtime: Goexit on C-created thread report more useful error message Fixes #68275 Change-Id: I47b7a2092f1b4d48aebf437db4e329815c956bb9 GitHub-Last-Rev: b89bf3cab7f9f7611122f535914f2788564643c5 GitHub-Pull-Request: golang/go#69126 Reviewed-on: https://go-review.googlesource.com/c/go/+/609296 Reviewed-by: Tim King LUCI-TryBot-Result: Go LUCI Auto-Submit: Ian Lance Taylor Reviewed-by: Ian Lance Taylor --- src/runtime/proc.go | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/runtime/proc.go') diff --git a/src/runtime/proc.go b/src/runtime/proc.go index c4db86225d..0909d138ff 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -4321,6 +4321,9 @@ 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) -- cgit v1.3-6-g1900