Several shutdown-related fixes
* do not let vnThreadsRunning[1] go negative * do not perform locking operations while vnThreadsRunning[1] is decreased * check vnThreadsRunning[1] at exit
This commit is contained in:
parent
c85c37acb1
commit
cc201e01f8
13
src/net.cpp
13
src/net.cpp
@ -1274,9 +1274,13 @@ void ThreadOpenConnections2(void* parg)
|
|||||||
int64 nStart = GetTime();
|
int64 nStart = GetTime();
|
||||||
loop
|
loop
|
||||||
{
|
{
|
||||||
// Limit outbound connections
|
|
||||||
vnThreadsRunning[1]--;
|
vnThreadsRunning[1]--;
|
||||||
Sleep(500);
|
Sleep(500);
|
||||||
|
vnThreadsRunning[1]++;
|
||||||
|
if (fShutdown)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Limit outbound connections
|
||||||
loop
|
loop
|
||||||
{
|
{
|
||||||
int nOutbound = 0;
|
int nOutbound = 0;
|
||||||
@ -1288,13 +1292,12 @@ void ThreadOpenConnections2(void* parg)
|
|||||||
nMaxOutboundConnections = min(nMaxOutboundConnections, (int)GetArg("-maxconnections", 125));
|
nMaxOutboundConnections = min(nMaxOutboundConnections, (int)GetArg("-maxconnections", 125));
|
||||||
if (nOutbound < nMaxOutboundConnections)
|
if (nOutbound < nMaxOutboundConnections)
|
||||||
break;
|
break;
|
||||||
|
vnThreadsRunning[1]--;
|
||||||
Sleep(2000);
|
Sleep(2000);
|
||||||
if (fShutdown)
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
vnThreadsRunning[1]++;
|
vnThreadsRunning[1]++;
|
||||||
if (fShutdown)
|
if (fShutdown)
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
bool fAddSeeds = false;
|
bool fAddSeeds = false;
|
||||||
|
|
||||||
@ -1766,7 +1769,7 @@ bool StopNode()
|
|||||||
fShutdown = true;
|
fShutdown = true;
|
||||||
nTransactionsUpdated++;
|
nTransactionsUpdated++;
|
||||||
int64 nStart = GetTime();
|
int64 nStart = GetTime();
|
||||||
while (vnThreadsRunning[0] > 0 || vnThreadsRunning[2] > 0 || vnThreadsRunning[3] > 0 || vnThreadsRunning[4] > 0
|
while (vnThreadsRunning[0] > 0 || vnThreadsRunning[1] > 0 || vnThreadsRunning[2] > 0 || vnThreadsRunning[3] > 0 || vnThreadsRunning[4] > 0
|
||||||
|| (fHaveUPnP && vnThreadsRunning[5] > 0) || vnThreadsRunning[6] > 0 || vnThreadsRunning[7] > 0
|
|| (fHaveUPnP && vnThreadsRunning[5] > 0) || vnThreadsRunning[6] > 0 || vnThreadsRunning[7] > 0
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user