• Dmitry Vyukov's avatar
    runtime: unwire g/m in dropg always · bdc14698
    Dmitry Vyukov authored
    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/19950Reviewed-by: 's avatarAustin Clements <austin@google.com>
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    bdc14698
proc.go 115 KB