• Martin Holst Swende's avatar
    core: improve shutdown synchronization in BlockChain (#22853) · edb1937c
    Martin Holst Swende authored
    This change removes misuses of sync.WaitGroup in BlockChain. Before this change,
    block insertion modified the WaitGroup counter in order to ensure that Stop would wait
    for pending operations to complete. This was racy and could even lead to crashes
    if Stop was called at an unfortunate time. The issue is resolved by adding a specialized
    'closable' mutex, which prevents chain modifications after stopping while also
    synchronizing writers with each other.
    Co-authored-by: 's avatarFelix Lange <fjl@twurst.com>
    edb1937c
mutex.go 1.75 KB