Hi list,<div><br></div><div>I recently found a bug in my company's code because of a strange behavior using multiprocessing.Queue. The following code snippet:</div><div><br></div><div><div>from multiprocessing import Queue</div>

<div><br></div><div>queue = Queue()</div><div>queue.put('x')</div><div>print queue.get_nowait()</div><div>  </div></div><div>Fails with:</div><div><br></div><div>...</div><div><div>  File "E:\Shared\dist-0902\i686.win32\processing-0.52\lib\site-packages\processing\queue.py", line 153, in getNoWait</div>

<div>    return self.get(False)</div><div>  File "E:\Shared\dist-0902\i686.win32\processing-0.52\lib\site-packages\processing\queue.py", line 129, in get</div><div>    raise Empty</div><div>Queue.Empty</div></div>

<div><br></div><div>Strangely, changing this to:</div><div><br></div><div><div>queue = Queue()</div><div>queue.put('x')</div><div>time.sleep(0.1) # <<<</div><div>print queue.get_nowait()</div><div>  </div>

</div><div>Works as expected. Using the original snippet changing the import to threading's Queue also works.</div><div><br></div><div>It seems like there's a bug in multiprocessing's Queue implementation. Opinions?</div>

<div><br></div><div>Thanks.</div><div><br></div>