allow fifo empty space to be set to given value
handle end of stream better with no data function