SLFLAG
if (atomic_fcmpset_int(&lock->lock, &v, v | SLFLAG)) {
if ((v & ~SLFLAG) == 0) {
if (atomic_fcmpset_int(&lock->lock, &v, v | SLFLAG)) {
if (v == SLFLAG) {
atomic_clear_int(&lock->lock, SLFLAG);
if (v == SLFLAG) {
atomic_clear_int(&lock->lock, SLFLAG);