18 #ifndef FOEDUS_SOC_SHARED_POLLING_HPP_
19 #define FOEDUS_SOC_SHARED_POLLING_HPP_
88 uint64_t demanded_ticket,
89 uint64_t polling_spins = kDefaultPollingSpins,
90 uint64_t max_interval_us = kDefaultPollingMaxIntervalUs) const;
101 uint64_t demanded_ticket,
102 uint64_t timeout_microsec,
103 uint64_t polling_spins = kDefaultPollingSpins,
104 uint64_t max_interval_us = kDefaultPollingMaxIntervalUs) const;
119 uint64_t cur_ticket_;
121 void spin_poll(uint64_t demanded_ticket, uint64_t polling_spins) const;
125 #endif // FOEDUS_SOC_SHARED_POLLING_HPP_
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
void wait(uint64_t demanded_ticket, uint64_t polling_spins=kDefaultPollingSpins, uint64_t max_interval_us=kDefaultPollingMaxIntervalUs) const
Unconditionally wait for signal.
A polling-wait mechanism that can be placed in shared memory and used from multiple processes...
uint64_t acquire_ticket() const
Gives the ticket to.
const uint64_t kInitialPollingIntervalUs
Initial value of sleep interval in us.
#define CXX11_FINAL
Used in public headers in place of "final" of C++11.
#define CXX11_FUNC_DELETE
Used in public headers in place of " = delete" of C++11.
const uint64_t kDefaultPollingMaxIntervalUs
Default value of max_interval_us.
bool timedwait(uint64_t demanded_ticket, uint64_t timeout_microsec, uint64_t polling_spins=kDefaultPollingSpins, uint64_t max_interval_us=kDefaultPollingMaxIntervalUs) const
Wait for signal up to the given timeout.
void signal()
Signal it to let waiters exit.
const uint64_t kDefaultPollingSpins
Default value of polling_spins.