18 #include <xmmintrin.h>
62 for (int_fast32_t i = 0; i <
current; ++i)
79 #elif defined(__armel__) || defined(__ARMEL__)
80 asm volatile (
"nop" :::
"memory");
81 #elif defined(__arm__) || defined(__aarch64__)
82 __asm__ __volatile__ (
"yield" :::
"memory");
83 #elif defined(__ia64__)
84 __asm__ __volatile__ (
"hint @pause");
85 #elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__)
86 __asm__ __volatile__ (
"or 27,27,27" :::
"memory");
88 asm volatile (
"nop" :::
"memory");
A delay for threads waiting for a shared resource.
Definition: spin_delay.hpp:37
void pause_processor()
Efficient instruction to pause the CPU.
Definition: spin_delay.hpp:75
void wait()
Delays the calling thread by either using active spinning or passive spinning.
Definition: spin_delay.hpp:58
constexpr spin_delay() noexcept=default
Defaulted.
static constexpr int_fast32_t max_repetitions
The maximal number of repetitions until the thread yields.
Definition: spin_delay.hpp:93
int_fast32_t current
The current waiting phase.
Definition: spin_delay.hpp:95
The internal SeqAn3 namespace.
Definition: aligned_sequence_concept.hpp:29