use fifo to avoid hanging