Or even better, do it like this:
```
if self.sender_drain.swap(1, atomics::SeqCst) == 1 && self.sender_drain.compare_and_swap(1, 0, atomics::SeqCst) {break}
```

This avoids the CAS loop and is much simpler.