11 lines
235 B
C
11 lines
235 B
C
|
|
#include <lib/tasks.h>
|
||
|
|
|
||
|
|
void spin_lock(spinlock_t *lock) {
|
||
|
|
while (__sync_lock_test_and_set(&lock->locked, 1)) {
|
||
|
|
asm volatile("pause");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void spin_unlock(spinlock_t *lock) {
|
||
|
|
__sync_lock_release(&lock->locked);
|
||
|
|
}
|