Message191566
| Author |
shwouchk |
| Recipients |
shwouchk |
| Date |
2013年06月21日.11:30:16 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1371814216.9.0.944814100336.issue18277@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
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. |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2013年06月21日 11:30:16 | shwouchk | set | recipients:
+ shwouchk |
| 2013年06月21日 11:30:16 | shwouchk | set | messageid: <1371814216.9.0.944814100336.issue18277@psf.upfronthosting.co.za> |
| 2013年06月21日 11:30:16 | shwouchk | link | issue18277 messages |
| 2013年06月21日 11:30:16 | shwouchk | create |
|