Write to same file from multiple threads
I want to write a text file from multiple threads. The file structure is line-oriented. This means writing of lines should be atomic. I am using Qt 5.15.2.
Is it enough to protect a shared QTextStream/QFile pair using a QMutex?
@dmckee Sorry, I tried to post a comment but failed. I could click "post" but the comment didn't appear.
Your solution is how I have solved it currently (well, a bit more complex but it boils down exactly to your idea). However moving the file work into a single writer thread does not scale.
I have a lot of threads writing very big amounts of data. This means the writer thread receives a big load and (more important) queued events need to carry a lot of data (which means a lot of RAM consumption). This gets even more nasty in case the writer thread is too slow: It will pile up events consuming virtually all RAM in the system. This is why I would prefer a mutex like solution very much. Alas, is that possible?