Commit 725aa345 authored by Ian Lance Taylor's avatar Ian Lance Taylor

runtime: no deadlock error if buildmode=c-archive or c-shared

Change-Id: I4ee6dac32bd3759aabdfdc92b235282785fbcca9
Reviewed-on: https://go-review.googlesource.com/9083Reviewed-by: default avatarDavid Crawshaw <crawshaw@golang.org>
parent a13cf8c1
...@@ -2711,6 +2711,13 @@ func incidlelocked(v int32) { ...@@ -2711,6 +2711,13 @@ func incidlelocked(v int32) {
// Check for deadlock situation. // Check for deadlock situation.
// The check is based on number of running M's, if 0 -> deadlock. // The check is based on number of running M's, if 0 -> deadlock.
func checkdead() { func checkdead() {
// For -buildmode=c-shared or -buildmode=c-archive it's OK if
// there are no running goroutines. The calling program is
// assumed to be running.
if islibrary || isarchive {
return
}
// If we are dying because of a signal caught on an already idle thread, // If we are dying because of a signal caught on an already idle thread,
// freezetheworld will cause all running threads to block. // freezetheworld will cause all running threads to block.
// And runtime will essentially enter into deadlock state, // And runtime will essentially enter into deadlock state,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment