__sl_cas
while (!__sl_cas(&lock->lock, 1, 0));
__sl_cas(&lock->lock, 0, 1);
return __sl_cas(&lock->lock, 1, 0);
while (!old || __sl_cas(&rw->lock, old, old-1) != old);
while (__sl_cas(&rw->lock, old, old+1) != old);
while (__sl_cas(&rw->lock, RW_LOCK_BIAS, 0) != RW_LOCK_BIAS);
__sl_cas(&rw->lock, 0, RW_LOCK_BIAS);
while (old && __sl_cas(&rw->lock, old, old-1) != old);
return __sl_cas(&rw->lock, RW_LOCK_BIAS, 0) == RW_LOCK_BIAS;