This bit of code hangs Python Indefinitely

Chris Mellon arkanes at gmail.com
Wed Aug 8 15:50:00 CEST 2007


On 8/8/07, brad <byte8bits at gmail.com> wrote:
> url_queue = Queue.Queue(256)
> for subnet in subnets:
>      url_queue.put(subnet)
>
> The problem is that I have 512 things to add to the queue, but my limit
> is half that... whoops. Shouldn't the interpreter tell me that I'm an
> idiot for trying to do this instead of just hanging? A message such as
> this would be more appropriate:
>
> "Hey fool, you told me to only accept 256 things and you're trying to
> give me 512... what's up with that?"

You should have read the Queue documentation first. Queues, by design,
are producer/consumer streams and the producer is designed to block if
the queue is full. You can use the put_nowait method to have it raise
an exception instead of blocking.



More information about the Python-list mailing list