]> Cypherpunks repositories - gostls13.git/commit
runtime: unwire g/m in dropg always
authorDmitry Vyukov <dvyukov@google.com>
Fri, 26 Feb 2016 09:43:09 +0000 (10:43 +0100)
committerDmitry Vyukov <dvyukov@google.com>
Fri, 26 Feb 2016 15:45:45 +0000 (15:45 +0000)
commitbdc14698f8b79e9629a8321d4f904c3275f8ffed
tree3ab36844e7cee707daf2ebf86be968387a3b4851
parent3b3d58e1190f19e31bded9ab7166a736048bc24b
runtime: unwire g/m in dropg always

Currently dropg does not unwire locked g/m.
This is unnecessary distiction between locked and non-locked g/m.
We always restart goroutines with execute which re-wires g/m.

First, this produces false sense that this distinction is necessary.
Second, it can confuse some sanity and cross checks. For example,
if we check that g/m are unwired before we wire them in execute,
the check will fail for locked g/m. I've hit this while doing some
race detector changes, When we deschedule a goroutine and run
scheduler code, m.curg is generally nil, but not for locked ms.

Remove the distinction.

Change-Id: I3b87a28ff343baa1d564aab1f821b582a84dee07
Reviewed-on: https://go-review.googlesource.com/19950
Reviewed-by: Austin Clements <austin@google.com>
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/runtime/proc.go