int priorvalue = atomic_fetch_sub_explicit(&lock, 1, memory_order_acquire);
while (priorvalue <= 0) {
atomic_fetch_add_explicit(&lock, 1, memory_order_relaxed);
while (atomic_load_explicit(&lock, memory_order_relaxed) <= 0) {
int priorvalue = atomic_fetch_sub_explicit(&lock, 1, memory_order_acquire);
while (priorvalue <= 0) {
atomic_fetch_add_explicit(&lock, 1, memory_order_relaxed);
while (atomic_load_explicit(&lock, memory_order_relaxed) <= 0) {