[Web-SIG] [extension] x-wsgiorg.flush
Phillip J. Eby
pje at telecommunity.com
Thu Oct 4 01:10:49 CEST 2007
At 09:52 PM 10/3/2007 +0200, Manlio Perillo wrote:
>Phillip J. Eby ha scritto:
> > [...]
> >
> > Now that I understand what this is for, I can explain why a WSGI
> > extension is not necessary to provide this feature. In a compliant WSGI
> > gateway, yielding an empty string from 'a-generator' is sufficient to
> > "flush" the WSGI pipeline.
> >
>
>But the WSGI pipeline should already be flushed for every string
>yielded, right?
>
>An interesting "extension" for an asynchronous WSGI gateway is to
>"suspend" the iteration when an empty string is returned, creating a
>timer that fires after 0 milliseconds (in Twisted, this is the same as
>callLater(0, ...))
>
> > I suggest that you read this section of the spec more carefully:
> >
> > http://www.python.org/dev/peps/pep-0333/#buffering-and-streaming
> >
>
>There is a problem here: a WSGI gateway is not allowed to send headers
>until the app_iter yields a non empty string or the iterator is exausted.
Argh. You're right. I forgot about that bit. It has been a few too
many years since I worked on the spec. :)
Still, this is yet another example of why WSGI 2.0 is a big
improvement in simplicity. So I still would rather see more effort
put into getting WSGI 2.0 written and into widespread use, than
creating niche extensions to 1.0.
More information about the Web-SIG
mailing list