only call idle when there are no queued events