Commit e007b243 authored by Matt Corallo's avatar Matt Corallo
Browse files

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.
Showing with 4 additions and 4 deletions
+4 -4
......@@ -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();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment