Yes. It only retries when one of the referenced values is updated.
This does violate the rule "only use mutexes and condition variables", and perhaps the rule added at the end "you can't read the values" (comparing memory without reading from memory seems like quite a trick!).
> There's no way to read the values from the array, only to set them and compare them for equality
(emphasis mine). That seems to me to mean literally what it says; that you can query two values for equality, but, either way, have no information about what the values are.
EDIT: From the horse's mouth (https://news.ycombinator.com/item?id=9801189), I'm wrong.
EDIT: Also, the wording
> There's no way to read the values from the array, only to set them and compare them for equality
seems unchanged.
EDIT: From the horse's mouth (https://news.ycombinator.com/item?id=9801189), I'm wrong.