Reorder check for isEmpty, on a ConcurrentLinkedQueue its
 more expensive than would appear.