[Twisted-Python] PullProducer appreciation, lack thereof.
Clark C. Evans
cce at clarkevans.com
Wed Apr 2 15:17:53 EST 2003
On Wed, Apr 02, 2003 at 12:56:00PM -0500, Itamar Shtull-Trauring wrote:
| > On Mon, 2003-03-24 at 14:29, radix CVS wrote:
| > > class IPullProducer(IProducer):
| > > """A pull producer, also known as a non-streaming producer, is
| > > expected to produce data each time resumeProducing() is called.
| > > """
| > > def resumeProducing(self):
| > > """Resume producing data.
| > > This tells a producer to re-add itself to the main loop and
| > > produce more data for its consumer."""
| > Usage and behaviour of a PullProducer isn't clear to me. Does
| > PullProducer.resumeProducing mean that it should call consumer.write
| > exactly once?
This is also similar to the 'flow' module by Bob Ippolito (etrepum)
and somewhat distantly related to my flow module; only that mine is
more 'push' like. Both are attempts at bringing an async
producer into play, where the producer could at any time block.
| > If it is a different interface, can we give the method a different
| > name? I think it strange that you call "resume" on these when
| > producing has never been "paused". And that "resume" in this case
| > does not signal a return to an ongoing process from which it has been
| > interrupted, but is a single request for a discrete amount of data.
| > A name beginning with "get" or "next" seems more fitting.
| Yes, but it's there for historical reasons...
| Idon't think the two interfaces should be merged - they are different in
| intent and usage.
More information about the Twisted-Python