Hi list,
I recently found a bug in my company's code because of a strange behavior
using multiprocessing.Queue. The following code snippet:
from multiprocessing import Queue
queue = Queue()
queue.put('x')
print queue.get_nowait()
Fails with:
...
File
"E:\Shared\dist-0902\i686.win32\processing-0.52\lib\site-packages\processing\queue.py",
line 153, in getNoWait
return self.get(False)
File
"E:\Shared\dist-0902\i686.win32\processing-0.52\lib\site-packages\processing\queue.py",
line 129, in get
raise Empty
Queue.Empty
Strangely, changing this to:
queue = Queue()
queue.put('x')
time.sleep(0.1) # <<<
print queue.get_nowait()
Works as expected. Using the original snippet changing the import to
threading's Queue also works.
It seems like there's a bug in multiprocessing's Queue implementation.
Opinions?
Thanks.
--
http://mail.python.org/mailman/listinfo/python-list