Re control-C and threads: http://www.dabeaz.com/python/GIL.pdf (slides
21-25 or so, but really, read all of it, it's quite fascinating)
explains why it's broken.

On Tue, Feb 16, 2010 at 4:00 PM, Mike Orr <[email protected]> wrote:
> On Tue, Feb 16, 2010 at 12:08 PM, Veloz <[email protected]> wrote:
>> Let's try it this way: the httpserver code you refer to is not really
>> executed by paster directly, is it? The httpserver code is python code
>> (I can see the source file on my computer, it's apparently not bundled
>> into paster.exe) that has to be parsed and executed by some instance
>> of python., and I suspect paster does not have a built in python
>> interpreter that it's using.
>
> There's no sub-interpreter. Python starts first and executes the
> top-level 'paster' script.  (On Unix the "#!/usr/bin/env python" line
> triggers this behavior in the OS; on Windows I'm not sure if a .bat
> script is used.)  The Pylons Execution Analysis [1] shows what's
> happening.  PasteDeploy instantiates the server and application as
> specified in the INI file, and calls ``server(app)``.
>
> The server (PasteHTTPServer) sets up a thread pool and listens for
> requests. When a request comes in, it takes a free thread, runs the
> request in it (i.e., sets up a WSGI environment and calls the
> application), and returns the thread to the pool.
>
> The ctrl-C issue is just how Python handles threads. I sometimes have
> to press ctrl-C twice or get a delayed shutdown like you're talking
> about. "paster serve --reload" adds another layer of complexity with
> its subprocess. A more complete answer would require studying Python's
> thread behavior and how Paste uses threads. I haven't studied this, or
> kept track of how Paste shuts down compared to other frameworks. I do
> know that Paste successfully kills off child threads, whereas when I
> was using another framework (Quixote), I had to manually kill child
> processes.  I've also seen a case where a chart library with a C
> extension wrote its file several minutes after the request supposedly
> ended and the chart object went out of scope.
>
> [1]  http://bitbucket.org/sluggo/pylons-execution/src/tip/execution.rst
> (Temporary location of 0.10/1.0 version until it can be incorporated
> into the Pylons docs.)
>
> --
> Mike Orr <[email protected]>
>
> --
> You received this message because you are subscribed to the Google Groups 
> "pylons-discuss" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/pylons-discuss?hl=en.
>
>



-- 
_Mark_ <[email protected]> <[email protected]>

-- 
You received this message because you are subscribed to the Google Groups 
"pylons-discuss" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en.

Reply via email to