Mercurial > hg > bitcoin
diff src/bitcoinrpc.cpp @ 3114:80002e29d5e7 draft
Lock vnThreadsRunning[THREAD_RPCHANDLER].
author | Matt Corallo <matt@bluematt.me> |
---|---|
date | Thu, 28 Jun 2012 18:34:11 +0200 |
parents | 5ed35adc426f |
children | d4525dc0a957 |
line wrap: on
line diff
--- a/src/bitcoinrpc.cpp +++ b/src/bitcoinrpc.cpp @@ -2913,10 +2913,15 @@ 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 @@ { conn->close(); delete conn; - --vnThreadsRunning[THREAD_RPCHANDLER]; + { + LOCK(cs_THREAD_RPCHANDLER); + --vnThreadsRunning[THREAD_RPCHANDLER]; + } return; } map<string, string> mapHeaders; @@ -3005,7 +3013,10 @@ } 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 ¶ms) const