use a_swap rather than old name a_xchg
[oweals/musl.git] / src / thread / pthread_rwlock_trywrlock.c
index 202e256aa0471de4e20d21696b312191e6fa703a..bb3d3a992d1f3dd8a4919de9945b7fad75786a6a 100644 (file)
@@ -2,12 +2,6 @@
 
 int pthread_rwlock_trywrlock(pthread_rwlock_t *rw)
 {
-       if (a_xchg(&rw->_rw_wrlock, 1))
-               return EBUSY;
-       if (rw->_rw_readers) {
-               a_store(&rw->_rw_wrlock, 0);
-               return EBUSY;
-       }
-       rw->_rw_owner = pthread_self()->tid;
+       if (a_cas(&rw->_rw_lock, 0, 0x7fffffff)) return EBUSY;
        return 0;
 }