mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-07-07 17:00:32 +02:00
Fix shutdown hang with >= 8 -addnodes set
We previously would block waiting for a CSemaphoreGrant in ThreadOpenAddedConnections, when we did not need to. This would block as the posts in CConnman shutdown were both to the wrong semaphore and in the wrong location.
This commit is contained in:
@ -2322,6 +2322,10 @@ void CConnman::Interrupt()
|
||||
if (semOutbound)
|
||||
for (int i=0; i<(nMaxOutbound + nMaxFeeler); i++)
|
||||
semOutbound->post();
|
||||
|
||||
if (semAddnode)
|
||||
for (int i=0; i<nMaxAddnode; i++)
|
||||
semAddnode->post();
|
||||
}
|
||||
|
||||
void CConnman::Stop()
|
||||
@ -2337,10 +2341,6 @@ void CConnman::Stop()
|
||||
if (threadSocketHandler.joinable())
|
||||
threadSocketHandler.join();
|
||||
|
||||
if (semAddnode)
|
||||
for (int i=0; i<nMaxAddnode; i++)
|
||||
semOutbound->post();
|
||||
|
||||
if (fAddressesInitialized)
|
||||
{
|
||||
DumpData();
|
||||
|
Reference in New Issue
Block a user