mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
Merge #14993: rpc: Fix data race (UB) in InterruptRPC()
6c10037f72073eecc674c313580ef50a4f1e1e44 rpc: Fix data race (UB) in InterruptRPC() (practicalswift) Pull request description: Fix data race (UB) in `InterruptRPC()`. Before: ``` $ ./configure --with-sanitizers=thread $ make $ test/functional/test_runner.py feature_shutdown.py … SUMMARY: ThreadSanitizer: data race rpc/server.cpp:314 in InterruptRPC() … ALL | ✖ Failed | 2 s (accumulated) ``` After: ``` $ ./configure --with-sanitizers=thread $ make $ test/functional/test_runner.py feature_shutdown.py … ALL | ✓ Passed | 3 s (accumulated) ``` Tree-SHA512: b139ca1a0480258f8caa7730cabd7783a821d906630f51487750a6b15b7842675ed679747e1ff1bdade77d248807e9d77bae7bb88da54d1df84a179cd9b9b987
This commit is contained in:
parent
15df1dcbe4
commit
3dbc611e55
@ -22,7 +22,7 @@
|
||||
#include <unordered_map>
|
||||
|
||||
static CCriticalSection cs_rpcWarmup;
|
||||
static std::atomic<bool> fRPCRunning{false};
|
||||
static std::atomic<bool> g_rpc_running{false};
|
||||
static bool fRPCInWarmup GUARDED_BY(cs_rpcWarmup) = true;
|
||||
static std::string rpcWarmupStatus GUARDED_BY(cs_rpcWarmup) = "RPC server started";
|
||||
/* Timer-creating functions */
|
||||
@ -316,7 +316,7 @@ bool CRPCTable::removeCommand(const std::string& name, const CRPCCommand* pcmd)
|
||||
void StartRPC()
|
||||
{
|
||||
LogPrint(BCLog::RPC, "Starting RPC\n");
|
||||
fRPCRunning = true;
|
||||
g_rpc_running = true;
|
||||
g_rpcSignals.Started();
|
||||
}
|
||||
|
||||
@ -324,7 +324,7 @@ void InterruptRPC()
|
||||
{
|
||||
LogPrint(BCLog::RPC, "Interrupting RPC\n");
|
||||
// Interrupt e.g. running longpolls
|
||||
fRPCRunning = false;
|
||||
g_rpc_running = false;
|
||||
}
|
||||
|
||||
void StopRPC()
|
||||
@ -337,7 +337,7 @@ void StopRPC()
|
||||
|
||||
bool IsRPCRunning()
|
||||
{
|
||||
return fRPCRunning;
|
||||
return g_rpc_running;
|
||||
}
|
||||
|
||||
void SetRPCWarmupStatus(const std::string& newStatus)
|
||||
|
Loading…
Reference in New Issue
Block a user