Tamás is right. In the case you show, M1 will pick up G2 and work on it. In general, the M (OS thread) finds another goroutine to run, and if it can't find one it parks itself until more goroutines show up.
The code is in src/runtime/proc.go:findrunnable, which calls stopm. We've been contemplating destroying Ms that have been waiting around for a long time with nothing to do, but we haven't implemented that yet. On Monday, April 9, 2018 at 2:03:54 PM UTC-7, Tamás Gulácsi wrote: > > AFAIK it'll be parked fir another goroutine. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.