@@ -41,7 +41,7 @@ struct CUpdatedBlock
4141 int height;
4242};
4343
44- static std::mutex cs_blockchange;
44+ static CWaitableCriticalSection cs_blockchange;
4545static std::condition_variable cond_blockchange;
4646static CUpdatedBlock latestblock;
4747
@@ -218,7 +218,7 @@ UniValue waitfornewblock(const JSONRPCRequest& request)
218218
219219 CUpdatedBlock block;
220220 {
221- std::unique_lock<std::mutex> lock (cs_blockchange);
221+ WAIT_LOCK (cs_blockchange, lock );
222222 block = latestblock;
223223 if (timeout)
224224 cond_blockchange.wait_for (lock, std::chrono::milliseconds (timeout), [&block]{return latestblock.height != block.height || latestblock.hash != block.hash || !IsRPCRunning (); });
@@ -260,7 +260,7 @@ UniValue waitforblock(const JSONRPCRequest& request)
260260
261261 CUpdatedBlock block;
262262 {
263- std::unique_lock<std::mutex> lock (cs_blockchange);
263+ WAIT_LOCK (cs_blockchange, lock );
264264 if (timeout)
265265 cond_blockchange.wait_for (lock, std::chrono::milliseconds (timeout), [&hash]{return latestblock.hash == hash || !IsRPCRunning ();});
266266 else
@@ -303,7 +303,7 @@ UniValue waitforblockheight(const JSONRPCRequest& request)
303303
304304 CUpdatedBlock block;
305305 {
306- std::unique_lock<std::mutex> lock (cs_blockchange);
306+ WAIT_LOCK (cs_blockchange, lock );
307307 if (timeout)
308308 cond_blockchange.wait_for (lock, std::chrono::milliseconds (timeout), [&height]{return latestblock.height >= height || !IsRPCRunning ();});
309309 else
0 commit comments