on_empty_queue could be called more than once