Definition at line 51 of file EventCount.h.
◆ EventCount() [1/2]
Definition at line 55 of file EventCount.h.
#define eigen_plain_assert(condition)
MaxSizeVector< Waiter > & waiters_
std::atomic< uint64_t > state_
static const uint64_t kStackMask
static const uint64_t kWaiterBits
◆ ~EventCount()
Eigen::EventCount::~EventCount |
( |
| ) |
|
|
inline |
◆ EventCount() [2/2]
Eigen::EventCount::EventCount |
( |
const EventCount & |
| ) |
|
|
privatedelete |
◆ CancelWait()
void Eigen::EventCount::CancelWait |
( |
| ) |
|
|
inline |
Definition at line 111 of file EventCount.h.
124 if (
state_.compare_exchange_weak(state, newstate,
125 std::memory_order_acq_rel))
static const uint64_t kSignalInc
static const uint64_t kWaiterMask
static const uint64_t kWaiterInc
static const uint64_t kWaiterShift
static void CheckState(uint64_t state, bool waiter=false)
static const uint64_t kSignalMask
static const uint64_t kSignalShift
◆ CheckState()
static void Eigen::EventCount::CheckState |
( |
uint64_t |
state, |
|
|
bool |
waiter = false |
|
) |
| |
|
inlinestaticprivate |
Definition at line 211 of file EventCount.h.
212 static_assert(
kEpochBits >= 20,
"not enough bits to prevent ABA problem");
static const uint64_t kEpochBits
◆ CommitWait()
void Eigen::EventCount::CommitWait |
( |
Waiter * |
w | ) |
|
|
inline |
Definition at line 81 of file EventCount.h.
96 std::memory_order_relaxed);
99 if (
state_.compare_exchange_weak(state, newstate,
100 std::memory_order_acq_rel)) {
static const uint64_t kEpochMask
static const uint64_t kEpochInc
◆ Notify()
void Eigen::EventCount::Notify |
( |
bool |
notifyAll | ) |
|
|
inline |
Definition at line 132 of file EventCount.h.
133 std::atomic_thread_fence(std::memory_order_seq_cst);
146 }
else if (signals < waiters) {
152 uint64_t next =
w->next.load(std::memory_order_relaxed);
156 if (
state_.compare_exchange_weak(state, newstate,
157 std::memory_order_acq_rel)) {
158 if (!notifyAll && (signals < waiters))
162 if (!notifyAll)
w->next.store(
kStackMask, std::memory_order_relaxed);
◆ operator=()
void Eigen::EventCount::operator= |
( |
const EventCount & |
| ) |
|
|
privatedelete |
◆ Park()
void Eigen::EventCount::Park |
( |
Waiter * |
w | ) |
|
|
inlineprivate |
◆ Prewait()
void Eigen::EventCount::Prewait |
( |
| ) |
|
|
inline |
Definition at line 68 of file EventCount.h.
74 if (
state_.compare_exchange_weak(state, newstate,
75 std::memory_order_seq_cst))
◆ Unpark()
void Eigen::EventCount::Unpark |
( |
Waiter * |
w | ) |
|
|
inlineprivate |
Definition at line 230 of file EventCount.h.
231 for (Waiter* next;
w;
w = next) {
233 next = wnext ==
kStackMask ? nullptr : &
waiters_[internal::convert_index<size_t>(wnext)];
◆ kEpochBits
const uint64_t Eigen::EventCount::kEpochBits |
|
staticprivate |
◆ kEpochInc
const uint64_t Eigen::EventCount::kEpochInc |
|
staticprivate |
◆ kEpochMask
const uint64_t Eigen::EventCount::kEpochMask |
|
staticprivate |
◆ kEpochShift
const uint64_t Eigen::EventCount::kEpochShift |
|
staticprivate |
◆ kSignalInc
const uint64_t Eigen::EventCount::kSignalInc |
|
staticprivate |
◆ kSignalMask
const uint64_t Eigen::EventCount::kSignalMask |
|
staticprivate |
◆ kSignalShift
const uint64_t Eigen::EventCount::kSignalShift |
|
staticprivate |
◆ kStackMask
const uint64_t Eigen::EventCount::kStackMask |
|
staticprivate |
◆ kWaiterBits
const uint64_t Eigen::EventCount::kWaiterBits |
|
staticprivate |
◆ kWaiterInc
const uint64_t Eigen::EventCount::kWaiterInc |
|
staticprivate |
◆ kWaiterMask
const uint64_t Eigen::EventCount::kWaiterMask |
|
staticprivate |
◆ kWaiterShift
const uint64_t Eigen::EventCount::kWaiterShift |
|
staticprivate |
◆ state_
std::atomic<uint64_t> Eigen::EventCount::state_ |
|
private |
◆ waiters_
The documentation for this class was generated from the following file: