13
13
#include < algorithm>
14
14
#include < numeric>
15
15
#include < cassert>
16
-
16
+ # include " ../utility/os.hpp "
17
17
// This file is part of Eigen, a lightweight C++ template library
18
18
// for linear algebra.
19
19
//
@@ -505,14 +505,14 @@ class NonblockingNotifierV2 {
505
505
for (;;) {
506
506
// _check_state(state);
507
507
const uint64_t waiters = (state & kWaiterMask ) >> kWaiterShift ;
508
- const uint64_t signals = (state & kSignalMask ) >> kSignalShift ;
508
+ const uint64_t sigs = (state & kSignalMask ) >> kSignalShift ;
509
509
// Easy case: no waiters.
510
- if ((state & kStackMask ) == kStackMask && waiters == signals ) return ;
510
+ if ((state & kStackMask ) == kStackMask && waiters == sigs ) return ;
511
511
uint64_t newstate;
512
512
if (notifyAll) {
513
513
// Empty wait stack and set signal to number of pre-wait threads.
514
514
newstate = (state & kWaiterMask ) | (waiters << kSignalShift ) | kStackMask ;
515
- } else if (signals < waiters) {
515
+ } else if (sigs < waiters) {
516
516
// There is a thread in pre-wait state, unblock it.
517
517
newstate = state + kSignalInc ;
518
518
} else {
@@ -523,7 +523,7 @@ class NonblockingNotifierV2 {
523
523
}
524
524
// _check_state(newstate);
525
525
if (_state.compare_exchange_weak (state, newstate, std::memory_order_acq_rel)) {
526
- if (!notifyAll && (signals < waiters)) return ; // unblocked pre-wait thread
526
+ if (!notifyAll && (sigs < waiters)) return ; // unblocked pre-wait thread
527
527
if ((state & kStackMask ) == kStackMask ) return ;
528
528
Waiter* w = &_waiters[state & kStackMask ];
529
529
if (!notifyAll) w->next .store (kStackMask , std::memory_order_relaxed);
0 commit comments