using a constant of `LOCKERS` to mean "one locker" is a little counterintuitive to me, I would rather you have LOCKER_OFFSET and QUEUE_OFFSET and this would be

```rust
let mut a = self.state.compare_and_swap(0, 1 << LOCKER_OFFSET, atomics::SeqCst);
```