summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/thread/pthread_spin_lock.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/thread/pthread_spin_lock.c b/src/thread/pthread_spin_lock.c
index df575f08..0462e0f3 100644
--- a/src/thread/pthread_spin_lock.c
+++ b/src/thread/pthread_spin_lock.c
@@ -2,6 +2,6 @@
int pthread_spin_lock(pthread_spinlock_t *s)
{
- while (a_swap(s, 1)) a_spin();
+ while (*(volatile int *)s || a_cas(s, 0, 1)) a_spin();
return 0;
}