diff --git a/src/runtime/proc.go b/src/runtime/proc.go index 1871d3b248..b8ee616eaa 100644 --- a/src/runtime/proc.go +++ b/src/runtime/proc.go @@ -4187,7 +4187,12 @@ func checkdead() { // for details.) var run0 int32 if !iscgo && cgoHasExtraM { - run0 = 1 + mp := lockextra(true) + haveExtraM := extraMCount > 0 + unlockextra(mp) + if haveExtraM { + run0 = 1 + } } run := mcount() - sched.nmidle - sched.nmidlelocked - sched.nmsys