This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author aod
Recipients aod, sbt
Date 2013-05-15.22:33:12
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <CAP89RrdW3hxQh4Y9TvioUg5AiB==AAGT62O4GMfSAP0hSij45A@mail.gmail.com>
In-reply-to <51940AFF.5080808@gmail.com>
Content
RIchard,

But the example program has no races, no threads, nothing.
empty() is returning TRUE even though qsize() is >0 (which actually is)
And it happens almost every time I run that small example.
I had read the module doc, and I know its an unreliable method, but man,
the example program is too simple to fail
Truth is I decided qsize() is more reliable and im using it in my programs,
but man empty() problem is so ridiculous that I decided to submit here

2013/5/15 Richard Oudkerk <report@bugs.python.org>

>
> Richard Oudkerk added the comment:
>
> On 15/05/2013 10:25pm, Andre Dias wrote:
> > But qsize() is working. what is not working is empty()
>
> empty() returns False when there is data in the underlying pipe.  But
> the data does not enter the pipe until a background thread has written
> it to the pipe.  This should not cause any problems.
>
> Using Queue.empty() is always subject to races.  It is just that the
> multiprocessing version has an additional type of race compared to the
> normal one.
>
> ----------
>
> _______________________________________
> Python tracker <report@bugs.python.org>
> <http://bugs.python.org/issue17985>
> _______________________________________
>
History
Date User Action Args
2013-05-15 22:33:12aodsetrecipients: + aod, sbt
2013-05-15 22:33:12aodlinkissue17985 messages
2013-05-15 22:33:12aodcreate