fifo: Make LF optional, and process data on close