@@ -2,5 +2,6 @@
int pthread_spin_trylock(pthread_spinlock_t *s)
{
- return -a_xchg(s, 1) & EBUSY;
+ if (*s || a_xchg(s, 1)) return EBUSY;
+ return 0;
}