unless ($h->pump_nb) { sleep 1 } doesn't work, pump_nb always returns true even if there's no output, so we use sleep 0.1 for now