File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2626 */
2727
2828#include < atomic>
29- #include < new>
3029#include < cassert>
31- #include < cstddef>
32- #include < cstdint>
3330#include < vector>
34-
35- #if defined(_MSC_VER)
36- #include < intrin.h>
37- #elif defined(__GNUC__) || defined(__clang__)
38- #include < xmmintrin.h>
39- #endif
31+ #include < thread>
4032
4133#ifdef __cpp_lib_hardware_interference_size
4234 #define CACHE_LINE std::hardware_destructive_interference_size
4739inline __attribute__ ((always_inline)) void
4840spinLoopHint() noexcept {
4941#if defined(__x86_64__) || defined(_M_X64)
50- _mm_pause ( );
42+ asm volatile ( " pause " ::: " memory " );
5143#elif defined(__aarch64__)
5244 asm volatile (" yield" ::: " memory" );
45+ #elif defined(__riscv)
46+ asm volatile (" nop" ::: " memory" );
47+ #elif defined(__mips__)
48+ asm volatile (" nop" ::: " memory" );
5349#else
5450 std::this_thread::yield ();
5551#endif
You can’t perform that action at this time.
0 commit comments