46 "waiter_timeout_count"),
49 "waiter_awake_count",
"waiter_wakeup_delay_time")
63 , m_stats (*Waiter_statistics.create_statset ())
64 , m_wakeup_calls (
"waiter_wakeup_count")
65 , m_was_awaken (false)
86 std::unique_lock<std::mutex> lock (
m_mutex);
148 std::unique_lock<std::mutex> lock (
m_mutex);
178 std::unique_lock<std::mutex> lock (
m_mutex);
201 if (delta == std::chrono::microseconds (0))
209 std::unique_lock<std::mutex> lock (
m_mutex);
227 std::unique_lock<std::mutex> lock (
m_mutex);
void increment(statset &statsetr, stat_id id, stat_value incr=1) const
stat_value get_count(void)
cubperf::statset & m_stats
void time_and_increment(statset &statsetr, stat_id id, duration d, stat_value incr=1) const
generic_value< false > stat_value
cubperf::atomic_stat_counter m_wakeup_calls
static const cubperf::stat_id STAT_AWAKEN_COUNT_AND_TIME
void get_stat_values_with_converted_timers(const statset &statsetr, stat_value *output_stats) const
std::size_t get_value_count() const
clock::time_point time_point
static const char * STAT_WAKEUP_CALL_COUNT_NAME
static const cubperf::stat_id STAT_LOCK_WAKEUP_COUNT
void get_stats(cubperf::stat_value *stats_out)
static const cubperf::stat_id STAT_NO_SLEEP_COUNT
static const cubperf::stat_id STAT_SLEEP_COUNT
const char * get_value_name(std::size_t value_index) const
static const cubperf::statset_definition Waiter_statistics
static std::size_t get_stats_value_count(void)
bool wait_for(const std::chrono::system_clock::duration &delta)
static const cubperf::stat_id STAT_TIMEOUT_COUNT
void increment(stat_value incr=1)
static const char * get_stat_name(std::size_t stat_index)
std::condition_variable m_condvar
bool wait_until(const std::chrono::system_clock::time_point &timeout_time)
void reset_timept(time_point &timept)