> > I suspect it's down to timing. > > What you're putting into the queue is a reference to the array, and it's > only some time later that the array itself is pickled and then sent (the > work being done in the 'background'). > > Modifying the array before (or while) it's actually being sent would > explain the problem you're seeing.
That would also have been my guess. However, according to documentation: > When an object is put on a queue, the object is pickled and a background > thread later flushes the pickled data to an underlying pipe. In my understanding this means the object is pickled *before* the background thread takes care of flushing the data to the pipe. Is that a mistake in the documentation then? Any suggestion for a way to work around this limitation? Or perhaps a different approach altogether I could use to reduce CPU load? What the main thread actually does is dequeue data from a high-speed USB-to-serial (2.000.000 bps), that's why I came up with the array.array() solution to store collected data, hoping for the smallest possible overhead. Thanks! -- https://mail.python.org/mailman/listinfo/python-list