Lock vnThreadsRunning[THREAD_RPCHANDLER].

This commit is contained in:
Matt Corallo 2012-06-28 18:34:11 +02:00
parent 7cf3d2ccb9
commit 4e97a9d9eb

View file

@ -2913,10 +2913,15 @@ void ThreadRPCServer2(void* parg)
StopRequests();
}
static CCriticalSection cs_THREAD_RPCHANDLER;
void ThreadRPCServer3(void* parg)
{
IMPLEMENT_RANDOMIZE_STACK(ThreadRPCServer3(parg));
vnThreadsRunning[THREAD_RPCHANDLER]++;
{
LOCK(cs_THREAD_RPCHANDLER);
vnThreadsRunning[THREAD_RPCHANDLER]++;
}
AcceptedConnection *conn = (AcceptedConnection *) parg;
bool fRun = true;
@ -2925,7 +2930,10 @@ void ThreadRPCServer3(void* parg)
{
conn->close();
delete conn;
--vnThreadsRunning[THREAD_RPCHANDLER];
{
LOCK(cs_THREAD_RPCHANDLER);
--vnThreadsRunning[THREAD_RPCHANDLER];
}
return;
}
map<string, string> mapHeaders;
@ -3005,7 +3013,10 @@ void ThreadRPCServer3(void* parg)
}
delete conn;
vnThreadsRunning[THREAD_RPCHANDLER]--;
{
LOCK(cs_THREAD_RPCHANDLER);
vnThreadsRunning[THREAD_RPCHANDLER]--;
}
}
json_spirit::Value CRPCTable::execute(const std::string &strMethod, const json_spirit::Array &params) const