[Zope-dev] asynchat producer ready() method patch.

Donovan Baarda abo@minkirri.apana.org.au
Mon, 29 Jan 2001 18:53:26 +1100


On Sun, Jan 28, 2001 at 09:31:07PM +0100, Dieter Maurer wrote:
> Donovan Baarda writes:
>  > I remember reading ages ago on a wishlist for ZServer that someone was
>  > thinking of adding blocking support to producers. This patch adds support
>  > for just that in a non-intrusive way. I haven't tried applying this patch to
>  > ZServer, but it _should_ work.
> What does "blocking support dor producers" mean?

Disclaimer: you must be moderately familiar with ZServer/medusa/asynchat for
the following to make sense;

Asynchat used by ZServer and medusa use producers as a way to "push" data
through an async interface. The current version of asynchat requires that
producers be able to produce data immediately on calling their more()
method, untill they are finished, when they return ''. 

My patch adds support for producers being able to "block" by letting
asynchat know if they are ready via a ready() method. This allows you to use
the simple producer model to push data that may not be immediately
available. An example would be a http-fetch producer that fetches data from
upstream for a proxy.

This patch is only useful for people creating or modifying things like
medusa or ZServer.

-- 
----------------------------------------------------------------------
ABO: finger abo@minkirri.apana.org.au for more info, including pgp key
----------------------------------------------------------------------