What about checking for size only check for HEAD? this has to be atomic. As long as HEAD != nullptr it's fine or am I wrong? Maybe using bool `try_pop ( T& destination )` and if we cant we go to sleep...