X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fthread%2Fpthread_spin_lock.c;h=ded2b653c4751db88f288af6b84f92a7341263b3;hb=36b72cd6fdfed2cac6b6ff1ed58a96d8265785cf;hp=0ab3d64fdaed9b831c08bf90ed32e571ab2c400a;hpb=4106cdcd2de34bf3b9839e042344d92eae887ecb;p=musl diff --git a/src/thread/pthread_spin_lock.c b/src/thread/pthread_spin_lock.c index 0ab3d64f..ded2b653 100644 --- a/src/thread/pthread_spin_lock.c +++ b/src/thread/pthread_spin_lock.c @@ -1,7 +1,8 @@ #include "pthread_impl.h" +#include int pthread_spin_lock(pthread_spinlock_t *s) { - while (a_xchg(s, 1)) a_spin(); + while (*(volatile int *)s || a_cas(s, 0, EBUSY)) a_spin(); return 0; }