1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-09 15:10:29 +02:00
guile/spin.h
2022-07-20 14:40:47 +02:00

18 lines
311 B
C

#ifndef SPIN_H
#define SPIN_H
#include <sched.h>
#include <unistd.h>
static inline void yield_for_spin(size_t spin_count) {
if (spin_count < 10)
__builtin_ia32_pause();
else if (spin_count < 20)
sched_yield();
else if (spin_count < 40)
usleep(0);
else
usleep(1);
}
#endif // SPIN_H