don't stop programs abruptly, consume all the data

this until I find a gentle way to signal commands up in the pipe chain
that it's enough data