Re: Collating follow-up on the future of WSGI

Graham Dumpleton <[email protected]> Thu, 21 Jan 2016 07:28:01 +1100
Newsgroups gmane.comp.python.web
Message-ID <[email protected]>
--===============7021862695601209394==
Content-Type: multipart/alternative; boundary="Apple-Mail=_3756E123-027A-42ED-8DF3-8A5638618D2F"


--Apple-Mail=_3756E123-027A-42ED-8DF3-8A5638618D2F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


> On 21 Jan 2016, at 2:48 AM, Benoit Chesneau <[email protected]> =
wrote:
>=20
>=20
>=20
> On Wed, Jan 20, 2016 at 1:57 AM Robert Collins =
<[email protected] <mailto:[email protected]>> wrote:
> On 20 January 2016 at 12:04, Benoit Chesneau <[email protected] =
<mailto:[email protected]>> wrote:
>=20
> >
> > not at all. But I made the assumption that the wsgi server =
maintained a
> > thread directly or not where the python application is running .
> >
> > In any case there is some sort of wrapping done in the same =
thread/process
> > where the python application is running. And then nothing stop to =
give the
> > socket away to the application and tell to the server to stop to =
communicate
> > with it.
>=20
> What socket?
>=20
> Data could be being passed by shm, for instance.
>=20
> -Rob
>=20
>=20
> While shared memory would be quite a bad idea, then why not. I still =
don't see why having a way to upgrade the connection can't be done.
>=20
> Call it I/O resource or Socket, the issue is the same. At the end =
nothing stop the server to pass the control to the app. If we forget the =
socket (which is btw the simplest design) then the server could stop to =
control the I/O resource when the application ask it to do it. At some =
point either a garbage collection or a basic resource return/claim flow =
could be used to definitely free the resource.
>=20
> The thing behind that is that it would allow the WSGI spec to only =
focus on providing a strict gateway workflow without forcing the =
application to adopt a concurrency model aync or not.

No one has said you cannot do it. because though it is only able to be =
implemented in a subset of WSGI servers/adapters, then it doesn=E2=80=99t =
seem appropriate that it be a part of the core WSGI specification.

This is the role of a WSGI extension as found at:

    http://wsgi.readthedocs.org/en/latest/specifications.html =
<http://wsgi.readthedocs.org/en/latest/specifications.html>

So go talk to the authors of uWSGI, and the other couple of packages =
available for trying to plug these into some of the pure Python based =
WSGI servers and come to an agreement between yourselves as to a =
standard way of doing it and the extension specification can be added to =
the wsgi.org <http://wsgi.org/> site.

Graham


--Apple-Mail=_3756E123-027A-42ED-8DF3-8A5638618D2F
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D""><br class=3D""><div><blockquote type=3D"cite" class=3D""><div =
class=3D"">On 21 Jan 2016, at 2:48 AM, Benoit Chesneau &lt;<a =
href=3D"mailto:[email protected]" class=3D"">[email protected]</a>&gt;=
 wrote:</div><br class=3D"Apple-interchange-newline"><div class=3D""><div =
dir=3D"ltr" style=3D"font-family: Helvetica; font-size: 16px; =
font-style: normal; font-variant: normal; font-weight: normal; =
letter-spacing: normal; orphans: auto; text-align: start; text-indent: =
0px; text-transform: none; white-space: normal; widows: auto; =
word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=3D""><br =
class=3D""><br class=3D""><div class=3D"gmail_quote"><div dir=3D"ltr" =
class=3D"">On Wed, Jan 20, 2016 at 1:57 AM Robert Collins &lt;<a =
href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a>&gt; wrote:<br =
class=3D""></div><blockquote class=3D"gmail_quote" style=3D"margin: 0px =
0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, =
204); border-left-style: solid; padding-left: 1ex;">On 20 January 2016 =
at 12:04, Benoit Chesneau &lt;<a href=3D"mailto:[email protected]" =
target=3D"_blank" class=3D"">[email protected]</a>&gt; wrote:<br =
class=3D""><br class=3D"">&gt;<br class=3D"">&gt; not at all. But I made =
the assumption that the wsgi server maintained a<br class=3D"">&gt; =
thread directly or not where the python application is running .<br =
class=3D"">&gt;<br class=3D"">&gt; In any case there is some sort of =
wrapping done in the same thread/process<br class=3D"">&gt; where the =
python application is running. And then nothing stop to give the<br =
class=3D"">&gt; socket away to the application and tell to the server to =
stop to communicate<br class=3D"">&gt; with it.<br class=3D""><br =
class=3D"">What socket?<br class=3D""><br class=3D"">Data could be being =
passed by shm, for instance.<br class=3D""><br class=3D"">-Rob<br =
class=3D""><br class=3D""></blockquote><div class=3D""><br =
class=3D""></div><div class=3D"">While shared memory would be quite a =
bad idea, then why not. I still don't see why having a way to upgrade =
the connection can't be done.</div><div class=3D""><br =
class=3D""></div><div class=3D"">Call it I/O resource or Socket, the =
issue is the same. At the end nothing stop the server to pass the =
control to the app. If we forget the socket (which is btw the simplest =
design) then the server could stop to control the I/O resource when the =
application ask it to do it. At some point either a garbage collection =
or a basic resource return/claim flow could be used to definitely free =
the resource.<br class=3D""></div><div class=3D""><br =
class=3D""></div><div class=3D"">The thing behind that is that it would =
allow the WSGI spec to only focus on providing a strict gateway workflow =
without forcing the application to adopt a concurrency model aync or =
not.</div></div></div></div></blockquote><br class=3D""></div><div>No =
one has said you cannot do it. because though it is only able to be =
implemented in a subset of WSGI servers/adapters, then it doesn=E2=80=99t =
seem appropriate that it be a part of the core WSGI =
specification.</div><div><br class=3D""></div><div>This is the role of a =
WSGI extension as found at:</div><div><br class=3D""></div><div>&nbsp; =
&nbsp;&nbsp;<a =
href=3D"http://wsgi.readthedocs.org/en/latest/specifications.html" =
class=3D"">http://wsgi.readthedocs.org/en/latest/specifications.html</a></=
div><div><br class=3D""></div><div>So go talk to the authors of uWSGI, =
and the other couple of packages available for trying to plug these into =
some of the pure Python based WSGI servers and come to an agreement =
between yourselves as to a standard way of doing it and the extension =
specification can be added to the <a href=3D"http://wsgi.org" =
class=3D"">wsgi.org</a>&nbsp;site.</div><div><br =
class=3D""></div><div>Graham</div><br class=3D""></body></html>=

--Apple-Mail=_3756E123-027A-42ED-8DF3-8A5638618D2F--

--===============7021862695601209394==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Web-SIG mailing list
[email protected]
Web SIG: http://www.python.org/sigs/web-sig
Unsubscribe: https://mail.python.org/mailman/options/web-sig/gcpw-web-sig%40m.gmane.org

--===============7021862695601209394==--