// Thread.yield() for pop and push results in about 1.5 seconds of improvement
// onSpinWait instead of yield results in about the same times as without yield(), so slower than yield() by about 1.3 seconds
// using updateandGet or getandupdate is slower. we are not sure why, but it might just be that lambdas are less efficient with how they are processed internally?
// using updateandGet or getandupdate is slower than any other alternative we tested. we are not sure why, but it might just be that lambdas are less efficient with how they are processed internally?