first checks in atomic_buffer::push