mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-08 10:31:50 -05:00
scripted-diff: Replace MilliSleep with UninterruptibleSleep
This is safe because MilliSleep is never executed in a boost::thread, the only type of thread that is interruptible. * The RPC server uses std::thread * The wallet is either executed in an RPC thread or the main thread * bitcoin-cli, benchmarks and tests are only one thread (the main thread) -BEGIN VERIFY SCRIPT- sed -i --regexp-extended -e 's/MilliSleep\((\S+)\);/UninterruptibleSleep(std::chrono::milliseconds{\1});/g' $(git grep -l MilliSleep) -END VERIFY SCRIPT-
This commit is contained in:
parent
fa4620be78
commit
fa9af06d91
11 changed files with 13 additions and 13 deletions
|
@ -10,7 +10,7 @@
|
|||
static void Sleep100ms(benchmark::State& state)
|
||||
{
|
||||
while (state.KeepRunning()) {
|
||||
MilliSleep(100);
|
||||
UninterruptibleSleep(std::chrono::milliseconds{100});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -524,7 +524,7 @@ static int CommandLineRPC(int argc, char *argv[])
|
|||
}
|
||||
catch (const CConnectionFailed&) {
|
||||
if (fWait)
|
||||
MilliSleep(1000);
|
||||
UninterruptibleSleep(std::chrono::milliseconds{1000});
|
||||
else
|
||||
throw;
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ static void WaitForShutdown(NodeContext& node)
|
|||
{
|
||||
while (!ShutdownRequested())
|
||||
{
|
||||
MilliSleep(200);
|
||||
UninterruptibleSleep(std::chrono::milliseconds{200});
|
||||
}
|
||||
Interrupt(node);
|
||||
}
|
||||
|
|
|
@ -174,7 +174,7 @@ static bool HTTPReq_JSONRPC(HTTPRequest* req, const std::string &)
|
|||
/* Deter brute-forcing
|
||||
If this results in a DoS the user really
|
||||
shouldn't have their RPC port exposed. */
|
||||
MilliSleep(250);
|
||||
UninterruptibleSleep(std::chrono::milliseconds{250});
|
||||
|
||||
req->WriteHeader("WWW-Authenticate", WWW_AUTH_HEADER_DATA);
|
||||
req->WriteReply(HTTP_UNAUTHORIZED);
|
||||
|
|
|
@ -169,7 +169,7 @@ UniValue stop(const JSONRPCRequest& jsonRequest)
|
|||
// this reply will get back to the client.
|
||||
StartShutdown();
|
||||
if (jsonRequest.params[0].isNum()) {
|
||||
MilliSleep(jsonRequest.params[0].get_int());
|
||||
UninterruptibleSleep(std::chrono::milliseconds{jsonRequest.params[0].get_int()});
|
||||
}
|
||||
return PACKAGE_NAME " stopping";
|
||||
}
|
||||
|
|
|
@ -138,7 +138,7 @@ BOOST_FIXTURE_TEST_CASE(blockfilter_index_initial_sync, BuildChainTestingSetup)
|
|||
int64_t time_start = GetTimeMillis();
|
||||
while (!filter_index.BlockUntilSyncedToCurrentChain()) {
|
||||
BOOST_REQUIRE(time_start + timeout_ms > GetTimeMillis());
|
||||
MilliSleep(100);
|
||||
UninterruptibleSleep(std::chrono::milliseconds{100});
|
||||
}
|
||||
|
||||
// Check that filter index has all blocks that were in the chain before it started.
|
||||
|
|
|
@ -393,7 +393,7 @@ BOOST_AUTO_TEST_CASE(test_CheckQueueControl_Locks)
|
|||
CCheckQueueControl<FakeCheck> control(queue.get());
|
||||
// While sleeping, no other thread should execute to this point
|
||||
auto observed = ++nThreads;
|
||||
MilliSleep(10);
|
||||
UninterruptibleSleep(std::chrono::milliseconds{10});
|
||||
fails += observed != nThreads;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ BOOST_FIXTURE_TEST_CASE(txindex_initial_sync, TestChain100Setup)
|
|||
int64_t time_start = GetTimeMillis();
|
||||
while (!txindex.BlockUntilSyncedToCurrentChain()) {
|
||||
BOOST_REQUIRE(time_start + timeout_ms > GetTimeMillis());
|
||||
MilliSleep(100);
|
||||
UninterruptibleSleep(std::chrono::milliseconds{100});
|
||||
}
|
||||
|
||||
// Check that txindex excludes genesis block transactions.
|
||||
|
|
|
@ -1322,7 +1322,7 @@ BOOST_AUTO_TEST_CASE(util_time_GetTime)
|
|||
SetMockTime(111);
|
||||
// Check that mock time does not change after a sleep
|
||||
for (const auto& num_sleep : {0, 1}) {
|
||||
MilliSleep(num_sleep);
|
||||
UninterruptibleSleep(std::chrono::milliseconds{num_sleep});
|
||||
BOOST_CHECK_EQUAL(111, GetTime()); // Deprecated time getter
|
||||
BOOST_CHECK_EQUAL(111, GetTime<std::chrono::seconds>().count());
|
||||
BOOST_CHECK_EQUAL(111000, GetTime<std::chrono::milliseconds>().count());
|
||||
|
@ -1333,7 +1333,7 @@ BOOST_AUTO_TEST_CASE(util_time_GetTime)
|
|||
// Check that system time changes after a sleep
|
||||
const auto ms_0 = GetTime<std::chrono::milliseconds>();
|
||||
const auto us_0 = GetTime<std::chrono::microseconds>();
|
||||
MilliSleep(1);
|
||||
UninterruptibleSleep(std::chrono::milliseconds{1});
|
||||
BOOST_CHECK(ms_0 < GetTime<std::chrono::milliseconds>());
|
||||
BOOST_CHECK(us_0 < GetTime<std::chrono::microseconds>());
|
||||
}
|
||||
|
|
|
@ -205,7 +205,7 @@ BOOST_AUTO_TEST_CASE(processnewblock_signals_ordering)
|
|||
t.join();
|
||||
}
|
||||
while (GetMainSignals().CallbacksPending() > 0) {
|
||||
MilliSleep(100);
|
||||
UninterruptibleSleep(std::chrono::milliseconds{100});
|
||||
}
|
||||
|
||||
UnregisterValidationInterface(&sub);
|
||||
|
|
|
@ -756,7 +756,7 @@ bool BerkeleyBatch::Rewrite(BerkeleyDatabase& database, const char* pszSkip)
|
|||
return fSuccess;
|
||||
}
|
||||
}
|
||||
MilliSleep(100);
|
||||
UninterruptibleSleep(std::chrono::milliseconds{100});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -887,7 +887,7 @@ bool BerkeleyDatabase::Backup(const std::string& strDest)
|
|||
}
|
||||
}
|
||||
}
|
||||
MilliSleep(100);
|
||||
UninterruptibleSleep(std::chrono::milliseconds{100});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue