To be able to effectively process multiple files at once, the file reader and file writer needs to be completely separate and should be able to read/write more than one file at once.
1. Simplify the shared structure with full buffers (to not contain error handling information, as that is not needed for writer to start processing). Make it thread-safe.
2. Split reader and writer to separate threads.