diff options
| author | Qi Wang <interwq@gwu.edu> | 2018-05-08 19:12:50 (GMT) |
|---|---|---|
| committer | Qi Wang <interwq@gwu.edu> | 2018-05-08 19:12:50 (GMT) |
| commit | 61efbda7098de6fe64c362d309824864308c36d4 (patch) | |
| tree | 62b8cec5495df891b28fbb139b0c01cdbf9f3fb3 /include/jemalloc/internal/spin.h | |
| parent | 3f5049340e66c6929c3270f7359617f62e053b11 (diff) | |
| parent | 1c51381b7cc62b6e0e77d02c42925c3776dbc4a2 (diff) | |
| download | jemalloc-5.1.0.zip jemalloc-5.1.0.tar.gz jemalloc-5.1.0.tar.bz2 | |
Merge branch 'dev'5.1.0
Diffstat (limited to 'include/jemalloc/internal/spin.h')
| -rw-r--r-- | include/jemalloc/internal/spin.h | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/include/jemalloc/internal/spin.h b/include/jemalloc/internal/spin.h index e2afc98..22804c6 100644 --- a/include/jemalloc/internal/spin.h +++ b/include/jemalloc/internal/spin.h @@ -1,25 +1,29 @@ #ifndef JEMALLOC_INTERNAL_SPIN_H #define JEMALLOC_INTERNAL_SPIN_H -#ifdef JEMALLOC_SPIN_C_ -# define SPIN_INLINE extern inline -#else -# define SPIN_INLINE inline -#endif - #define SPIN_INITIALIZER {0U} typedef struct { unsigned iteration; } spin_t; -SPIN_INLINE void +static inline void +spin_cpu_spinwait() { +# if HAVE_CPU_SPINWAIT + CPU_SPINWAIT; +# else + volatile int x = 0; + x = x; +# endif +} + +static inline void spin_adaptive(spin_t *spin) { volatile uint32_t i; if (spin->iteration < 5) { for (i = 0; i < (1U << spin->iteration); i++) { - CPU_SPINWAIT; + spin_cpu_spinwait(); } spin->iteration++; } else { |
