SpinLock.h 436 B

123456789101112131415161718192021
  1. #ifndef CORE_SPIN_LOCK_H
  2. #define CORE_SPIN_LOCK_H
  3. #include <stdatomic.h>
  4. typedef struct {
  5. atomic_bool lock;
  6. } CoreSpinLock;
  7. void coreInitSpinLock(CoreSpinLock* l);
  8. void coreLockSpinLock(CoreSpinLock* l);
  9. void coreUnlockSpinLock(CoreSpinLock* l);
  10. #ifdef IMPORT_CORE
  11. #define SpinLock CoreSpinLock
  12. #define initSpinLock coreInitSpinLock
  13. #define lockSpinLock coreLockSpinLock
  14. #define unlockSpinLock coreUnlockSpinLock
  15. #endif
  16. #endif