Lines Matching refs:std
41 constexpr std::size_t max_nfs_size_exp = 7;
49 static constexpr std::int32_t LOOPS_BEFORE_YIELD = 16;
50 std::int32_t count;
96 T spin_wait_while(const std::atomic<T>& location, C comp, std::memory_order order) { in spin_wait_while()
109 T spin_wait_while_eq(const std::atomic<T>& location, const U value, std::memory_order order = std::…
116 T spin_wait_until_eq(const std::atomic<T>& location, const U value, std::memory_order order = std::…
142 std::uintptr_t log2(T in) { in log2()
153 T reverse_n_bits(T src, std::size_t n) { in reverse_n_bits()
161 static_assert(std::is_integral<IntegerType>::value, in is_power_of_two()
172 static_assert(std::is_integral<ArgIntegerType>::value, in is_power_of_two_at_least()
186 constexpr bool is_aligned(T* pointer, std::uintptr_t alignment) { in is_aligned()
187 return 0 == (reinterpret_cast<std::uintptr_t>(pointer) & (alignment - 1)); in is_aligned()
198 inline void poison_pointer(std::atomic<T*>& p) { p.store(reinterpret_cast<T*>(poisoned_ptr), std::m… in poison_pointer()
205 inline bool is_poisoned(const std::atomic<T*>& p) { return is_poisoned(p.load(std::memory_order_rel… in is_poisoned()
211 template <std::size_t alignment = 0, typename T>
245 void swap_atomics_relaxed(std::atomic<T>& lhs, std::atomic<T>& rhs){ in swap_atomics_relaxed()
246 T tmp = lhs.load(std::memory_order_relaxed); in swap_atomics_relaxed()
247 lhs.store(rhs.load(std::memory_order_relaxed), std::memory_order_relaxed); in swap_atomics_relaxed()
248 rhs.store(tmp, std::memory_order_relaxed); in swap_atomics_relaxed()
268 void atomic_do_once( const F& initializer, std::atomic<do_once_state>& state ) { in atomic_do_once()
275 while ( state.load( std::memory_order_acquire ) != do_once_state::executed ) { in atomic_do_once()
276 if( state.load( std::memory_order_relaxed ) == do_once_state::uninitialized ) { in atomic_do_once()
279 using enum_type = typename std::underlying_type<do_once_state>::type; in atomic_do_once()
280 …if( ((std::atomic<enum_type>&)state).compare_exchange_strong( (enum_type&)expected_state, (enum_ty… in atomic_do_once()
294 void run_initializer(const Functor& f, std::atomic<do_once_state>& state ) { in atomic_do_once()
296 state.store(do_once_state::executed, std::memory_order_release); in atomic_do_once()
301 concept boolean_testable_impl = std::convertible_to<T, bool>; in atomic_do_once()
305 { !std::forward<T>(t) } -> boolean_testable_impl; in atomic_do_once()
317 if constexpr (std::three_way_comparable_with<T1, T2>) { in atomic_do_once()
321 return std::weak_ordering::less; in atomic_do_once()
324 return std::weak_ordering::greater; in atomic_do_once()
326 return std::weak_ordering::equivalent; in atomic_do_once()
332 using synthesized_three_way_result = decltype(synthesized_three_way_comparator{}(std::declval<T1&>(… in atomic_do_once()
333 … std::declval<T2&>())); in atomic_do_once()
339 concept relaxed_convertible_to = std::constructible_from<U, T>; in atomic_do_once()
344 std::same_as<T, U>; in atomic_do_once()
346 std::convertible_to<T, U>; in atomic_do_once()
353 noexcept(std::is_nothrow_invocable_v<F, Args...>) in atomic_do_once()
354 -> std::invoke_result_t<F, Args...> in atomic_do_once()
356 return std::invoke(std::forward<F>(f), std::forward<Args>(args)...); in atomic_do_once()
359 noexcept(noexcept(std::forward<F>(f)(std::forward<Args>(args)...))) in atomic_do_once()
360 -> decltype(std::forward<F>(f)(std::forward<Args>(args)...)) in atomic_do_once()
362 return std::forward<F>(f)(std::forward<Args>(args)...); in atomic_do_once()