New submission from shwouchk: Consider this:
$ python Python 2.7.4 (default, Apr 19 2013, 18:28:01) [GCC 4.7.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import multiprocessing as mp >>> q = mp.Queue() >>> while True: q.put(1) q.get_nowait() Traceback (most recent call last): File "<stdin>", line 3, in <module> File "/usr/lib/python2.7/multiprocessing/queues.py", line 152, in get_nowait return self.get(False) File "/usr/lib/python2.7/multiprocessing/queues.py", line 134, in get raise Empty Queue.Empty I believe that similar behavior could be seen in cPython 2.7.3 with the Queue.Queue implementation, but I can't reproduce it now and don't have the old version to test. And it is irrelevant anyway since it work "correctly" now. I think this behavior is counter intuitive and hampers the development of code that performs stuff with queues in a generic way and works in both single and multi-process environments. ---------- components: IO, Interpreter Core messages: 191566 nosy: shwouchk priority: normal severity: normal status: open title: Queue is empty right after put from the same process/thread type: behavior versions: Python 2.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue18277> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com