mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 06:28:31 +01:00
Merge #16117: util: Replace boost sleep with std sleep
fae86c38bcutil: Remove unused MilliSleep (MarcoFalke)fa9af06d91scripted-diff: Replace MilliSleep with UninterruptibleSleep (MarcoFalke)fa4620be78util: Add UnintrruptibleSleep (MarcoFalke) Pull request description: We don't use the interruptible feature of boost's sleep anywhere, so replace it with the sleep in `std::thread` ACKs for top commit: ajtowns: ACKfae86c38bcquick code review practicalswift: ACKfae86c38bc-- patch looks correct sipa: Concept and code review ACKfae86c38bcfanquake: ACKfae86c38bc- note that an instance of `DHAVE_WORKING_BOOST_SLEEP_FOR` was missed in the [linter](https://github.com/bitcoin/bitcoin/blob/master/test/lint/extended-lint-cppcheck.sh#L69), but that can be cleaned up later. Tree-SHA512: 7c0f8eb197664b9f7d9fe6c472c77d384f11c797c913afc31de4b532e3b4fd9ea6dd174f92062ff9d1ec39b25e0900ca7c597435add87f0f2477d9557204848c
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
|
||||
#include <random.h>
|
||||
#include <scheduler.h>
|
||||
#include <util/time.h>
|
||||
|
||||
#include <boost/thread.hpp>
|
||||
#include <boost/test/unit_test.hpp>
|
||||
@@ -23,18 +24,6 @@ static void microTask(CScheduler& s, boost::mutex& mutex, int& counter, int delt
|
||||
}
|
||||
}
|
||||
|
||||
static void MicroSleep(uint64_t n)
|
||||
{
|
||||
#if defined(HAVE_WORKING_BOOST_SLEEP_FOR)
|
||||
boost::this_thread::sleep_for(boost::chrono::microseconds(n));
|
||||
#elif defined(HAVE_WORKING_BOOST_SLEEP)
|
||||
boost::this_thread::sleep(boost::posix_time::microseconds(n));
|
||||
#else
|
||||
//should never get here
|
||||
#error missing boost sleep implementation
|
||||
#endif
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(manythreads)
|
||||
{
|
||||
// Stress test: hundreds of microsecond-scheduled tasks,
|
||||
@@ -81,7 +70,7 @@ BOOST_AUTO_TEST_CASE(manythreads)
|
||||
for (int i = 0; i < 5; i++)
|
||||
microThreads.create_thread(std::bind(&CScheduler::serviceQueue, µTasks));
|
||||
|
||||
MicroSleep(600);
|
||||
UninterruptibleSleep(std::chrono::microseconds{600});
|
||||
now = boost::chrono::system_clock::now();
|
||||
|
||||
// More threads and more tasks:
|
||||
|
||||
Reference in New Issue
Block a user