Skip to content

Commit f634433

Browse files
committed
removed unused modules and improved multi-platform spin-wait hint
1 parent 7cc9e74 commit f634433

1 file changed

Lines changed: 6 additions & 10 deletions

File tree

src/cpp/queue.hpp

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,9 @@
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
@@ -47,9 +39,13 @@
4739
inline __attribute__((always_inline)) void
4840
spinLoopHint() 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

0 commit comments

Comments
 (0)