Would it be possible for a 3rd-party threading library to an 'interruptible' version of Queue?
The same methods as the normal Queue, but when you call a new .kill() method on the queue, all the threads locking on the queue get a "QueueKilled" exception thrown. It might be as simple as a Queue wrapper where .kill() adds a speciall Killed value to the queue, and the .get() wrapper throws a QueueKilled exception (after re-putting Killed) when it reads Killed. Locking for queues with a limited size is more complicated. Maybe .kill() can also set an .killed attribute, and pop anything already in the queue before putting Killed. Then when the put() wrapper unlocks, it checks if .killed is set, and throws a QueueKilled exception. One side-effect is that the queue becomes unusable (get & put now immediately throw QueueKilled), unless you make a .unkill() method. David -- http://mail.python.org/mailman/listinfo/python-list