Should probably be
```
bool expected = true;
if(first.compare_exchange_strong(expected,false,std::memory_order_acq_rel) ){
```