pipe reading without buffering