improved SpinLock