multiprocessing: queue.get() blocks even if queue.qsize() != 0
MRAB
google at mrabarnett.plus.com
Wed Oct 15 11:22:13 EDT 2008
On Oct 15, 2:05 pm, redbaron <ivanov.ma... at gmail.com> wrote:
> I run into problem with queue from multiprocessing. Even if I
> queue.qsize() != 0 queue.get() still blocks and queue.get_nowait()
> raises Emtpy error.
>
> I'm unable to cut my big part to small test case, because smaller test
> case similair to my real app by design is works. In what conditions is
> it possible?
>
> while qresult.qsize():
> result = qresult.get() #this code blocks!
> doWithResult(result)
>From Python v2.5 onwards queues also have a task_done() method. Try:
while qresult.qsize():
result = qresult.get() #this code blocks!
doWithResult(result)
qresult.task_done()
More information about the Python-list
mailing list