Keep unprocessed files open

* Try to open all files (almost) simultaneously
* Close files as we're processing them

This should minimize the chance of incorrect processing when files are
rotated after building file list but before we have processed them up to
last one.