5 #ifndef BITCOIN_UTIL_THREADINTERRUPT_H 6 #define BITCOIN_UTIL_THREADINTERRUPT_H 13 #include <condition_variable> 29 using Clock = std::chrono::steady_clock;
39 virtual explicit operator bool()
const;
58 #endif // BITCOIN_UTIL_THREADINTERRUPT_H virtual bool sleep_for(Clock::duration rel_time) EXCLUSIVE_LOCKS_REQUIRED(!mut)
Sleep for the given duration.
virtual void operator()() EXCLUSIVE_LOCKS_REQUIRED(!mut)
Interrupt any sleeps. After this interrupted() will return true.
std::condition_variable cond
std::chrono::steady_clock Clock
A helper class for interruptible sleeps.
virtual void reset()
Reset to an non-interrupted state.
virtual ~CThreadInterrupt()=default
#define EXCLUSIVE_LOCKS_REQUIRED(...)
virtual bool interrupted() const
Return true if operator()() has been called.