Programs are not guaranteed to observe transient atomic values,
an issue known as the A-B-A problem,
resulting in continued blocking if a condition is only temporarily met.
A call to an atomic waiting operation on an atomic object M
is eligible to be unblocked
by a call to an atomic notifying operation on M
if there exist side effects X and Y on M such that: