14 lines
303 B
C
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);
|
|
}
|