Skip the CAS on new_pos < 0 (#1080)

This commit is contained in:
Jōshin 2024-01-13 00:08:28 -05:00 committed by GitHub
parent fd75fd1467
commit 6715b670b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -66,8 +66,8 @@ Restart:
default:
new_pos = einval();
}
} while (!LIKELY(atomic_compare_exchange_weak_explicit(
&h->pos, &pos, new_pos < 0 ? pos : new_pos, memory_order_release,
memory_order_relaxed)));
} while (new_pos >= 0 && !LIKELY(atomic_compare_exchange_weak_explicit(
&h->pos, &pos, new_pos, memory_order_release,
memory_order_relaxed)));
return new_pos;
}