I'm not sure that this read of `to_wake` is properly synchronized. Other reads are protected on the sender side by the `acquire` barrier on `cnt`, but this read can happen on either the sender or receiver side, not preceded by the acquire on cnt.