@@ -42,7 +42,7 @@ struct CUpdatedBlock
4242 int height;
4343};
4444
45- static std::mutex cs_blockchange;
45+ static CWaitableCriticalSection cs_blockchange;
4646static std::condition_variable cond_blockchange;
4747static CUpdatedBlock latestblock;
4848
@@ -226,7 +226,7 @@ UniValue waitfornewblock(const JSONRPCRequest& request)
226226
227227 CUpdatedBlock block;
228228 {
229- std::unique_lock<std::mutex> lock (cs_blockchange);
229+ WAIT_LOCK (cs_blockchange, lock );
230230 block = latestblock;
231231 if (timeout)
232232 cond_blockchange.wait_for (lock, std::chrono::milliseconds (timeout), [&block]{return latestblock.height != block.height || latestblock.hash != block.hash || !IsRPCRunning (); });
@@ -268,7 +268,7 @@ UniValue waitforblock(const JSONRPCRequest& request)
268268
269269 CUpdatedBlock block;
270270 {
271- std::unique_lock<std::mutex> lock (cs_blockchange);
271+ WAIT_LOCK (cs_blockchange, lock );
272272 if (timeout)
273273 cond_blockchange.wait_for (lock, std::chrono::milliseconds (timeout), [&hash]{return latestblock.hash == hash || !IsRPCRunning ();});
274274 else
@@ -311,7 +311,7 @@ UniValue waitforblockheight(const JSONRPCRequest& request)
311311
312312 CUpdatedBlock block;
313313 {
314- std::unique_lock<std::mutex> lock (cs_blockchange);
314+ WAIT_LOCK (cs_blockchange, lock );
315315 if (timeout)
316316 cond_blockchange.wait_for (lock, std::chrono::milliseconds (timeout), [&height]{return latestblock.height >= height || !IsRPCRunning ();});
317317 else
0 commit comments