Hi Philip,
Could you provide that minimal reproduction example?
Thanks
Axel

> On 18 Feb 2023, at 01:17, Philip Seeger <phi...@c0xc.net> wrote:
> 
> Hi there!
> 
> I'm writing 1M chunks of data to a QProcess in a loop until all input data is 
> consumed. How do I wait after calling QProcess::write() until all data has 
> been sent to the process before calling write() again?
> 
> As documented, I have tried to call waitForBytesWritten(-1) after write() but 
> it only helps in the first iteration; then it does not seem to block until 
> all bytes are sent to the process. The result is that my program uses almost 
> 4G of RES memory if a 4G input file is being read and the loop finishes in a 
> second. Closing QProcess actually sends the data to the process (takes 
> minutes) and I don't see any progress.
> 
> Internally, Qt seems to use a QByteArray as writeBuffer and I could not find 
> where it checks if it exceeds a maximum size.
> 
> I believe QProcess storing 4 GB of data in an internal buffer is wrong under 
> any circumstances. Have I overlooked something in the documentation? How do I 
> turn this off?
> 
> I can provide a minimal example.
> 
> 
> Philip
> 
> 
> 
> 
> _______________________________________________
> Interest mailing list
> Interest@qt-project.org
> https://lists.qt-project.org/listinfo/interest
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to