For my next attempt, I dug in to find out how to terminate the paster
server via Ctrl-C. Turns out there is a server flag to inidcate
terminating the server, the trick is how to get access to it. I
couldn't figure anything reasonable out so this is how I did it in the
end:

In my setup.py I made my own "paste.server_runner":
[paste.server_runner]
my_http = MyProj.lib.httpserver:server_runner

Then I wrote a replacement for the
ThreadPoolMixIn.process_request_in_thread so that I could set the
Paster shutdown flag if my TG2 app requested a shutdown. Then my
server_runner just needs to ensure my repalcement function is
installed before calling the paster-provideed server_runner. (my
process request replacement of course calls the original version as
well, it only sets the self.running state to false if my app requested
it)

i.e. something like this:

from paste.httpserver import server_runner as original_server_runner

my_app_running = True
original_process = None

def replacement_for_process_request_in_thread(self, request,
client_address):
  original_process(self, request, client_address)
  self.running &= my_app_running

def server_runner(*args, **kwargs):
  if original_process is None:
    original_process = ThreadPoolMixIn.process_request_in_thread
   ThreadPoolMixIn.process_request_in_thread =
replacement_for_process_request_in_thread
  return origianl_server_runner(*args, **kwargs)

Not very elegant but it seemed to do what I wanted in the moment. I
suppose this approach really becomes more of a Paster question and of
course only deals with the thread-pooled server, not to mention relies
on a module-level data item.

Still looking for better solutions if anyone has them :-)

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears Trunk" 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/turbogears-trunk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to