rtengine/src/runtime/threading_spinlock.c
2024-05-14 14:07:04 +02:00

14 lines
303 B
C

#include "atomics.h"
#include "threading.h"
RT_DLLEXPORT void rtLockSpinlock(rt_spinlock *lock) {
int prev;
do {
prev = rtAtomic32CASAcq(&lock->lock, 1, 0);
} while (prev != 0);
}
RT_DLLEXPORT void rtUnlockSpinlock(rt_spinlock *lock) {
rtAtomic32ExchangeRel(&lock->lock, 0);
}