kriskowal/q — pull request #348 by kriskowal (2013-07-25 06:03:18+00:00)
Title: Separate the producer and consumer side of a Queue

In extending the interface of Queue to support the iterator and
"generator" interfaces, I neglected an important point. The beauty of a
Queue is that the `get` and `put` sides are implicitly bound and can be
safely passed to a consumer and a producer separately. To continue in
that vein, I've separated the generator and iterator interfaces such
that they can only either produce or consume, having access to either
`get` or `put` but not both. These objects must be created by calling
`iterate` or `generate` explicitly.