Lines Matching +full:negative +full:- +full:phase
1 // -*- C++ -*-
2 //===----------------------------------------------------------------------===//
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
8 //===----------------------------------------------------------------------===//
90 by flattening the tree structure into cache-line sized arrays, that
124 …__base_(std::__construct_barrier_algorithm_base(this->__expected_), &__destroy_barrier_algorithm_b…
130 …_update <= __expected_, "update is greater than the expected count for the current barrier phase");
133 for (; __update; --__update)
144 …auto const __test_fn = [this, __old_phase]() -> bool { return __phase_.load(memory_order_acquire) …
163 and well-defined overflow in atomic arithmetic, to handle the phase
164 roll-over for free.
184 auto const __result = __arrived.fetch_sub(update, memory_order_acq_rel) - update;
188 …update <= new_expected, "update is greater than the expected count for the current barrier phase");
211 static constexpr uint64_t __expected_mask = __arrived_unit - 1;
213 static constexpr uint64_t __arrived_mask = (__phase_bit - 1) & ~__expected_mask;
218 return ((uint64_t(1u << 31) - __count) << 32) | (uint64_t(1u << 31) - __count);
224 static constexpr ptrdiff_t max() noexcept { return ptrdiff_t(1u << 31) - 1; }
233 update <= __old, "update is greater than the expected count for the current barrier phase");
242 auto const __test_fn = [=]() -> bool {
270 …ier::barrier(ptrdiff_t, CompletionFunction): barrier cannot be initialized with a negative value");