It's only ever updated after the queue is updated, so its state will always lag slightly behind it. It's sufficient to just use empty(). This seems to fix some caching issues that were noticeable on Skylake CPUs (#998).