- only flush if necessary when idle