I think the semantically correct code is acquiredOrSoonToBeDiscarded.compareAndSet(true, false);