Eric Meyer added the comment:
The problem I was seeing ended up being improper GIL management in a c++
extension. It seems putting items that were created without the GIL on the
queue causes a seg fault.
--
___
Python tracker
Eric Meyer added the comment:
multiprocessing.SimpleQueue is another workaround to this issue.
I agree the docs should be clearer about this. Additionally, it would be
helpful if there was a way to optionally put an item on a multiprocessing.Queue
and block until the item has been written
Tim Peters added the comment:
The docs could be clearer about this: the argument to .put() is _not_ pickled
at the time .put() is called. The object is remembered (by reference, not by
value), and a feeder thread pickles the value and puts the pickle on the queue
when the
New submission from Simon Bouchard :
The clear list function call in made after the put(data) on the queue. But the
data is sometime clear in the queue (randomly). Since both function are call
within the same process, a race condition is not expected.
--