Just Launched: You can now import projects and releases from Google Code onto SourceForge
We are excited to release new functionality to enable a 1-click import from Google Code onto the Allura platform on SourceForge. You can import tickets, wikis, source, releases, and more with a few simple steps. Read More
Stuart Donaldson [mailto:stuartd@...] wrote:
> Given that some things work a little different between NT/Unix,
> can you put a quick test in and see if the catch KeyboardInterrupt
> is ever getting called, and let me know?
I just tried it. Looks like KeyboardInterrupt never gets raised (on
windows). It's the signal that causes the shutdown to be called.
> I can incorporate some cleanup into my subclassable
> ThreadedAppServer patch.
> Part of which will make it so experiments like Ian's
> could be done through subclassing, rather than
> re-implementation. That way
> the NT/Unix differences can be kept in as few places as
> possible. (I am
> aware that the NewThreadedAppServer also cleans up some stuff in
> ThreadedAppServer so it is a little more than just a new
> paradigm for the
> socket handling...)
Would it be better to make your modifications to NewThreadedAppServer rather
than to ThreadedAppServer? It may save time down the road if
NewThreadedAppServer becomes the standard.
From: Stuart Donaldson <stuartd@al...> - 2002-12-17 19:49:12
> -----Original Message-----
> From: Geoffrey Talvola [mailto:gtalvola@...]
> Stuart Donaldson [mailto:stuartd@...] wrote:
> Would it be better to make your modifications to
> NewThreadedAppServer rather
> than to ThreadedAppServer? It may save time down the road if
> NewThreadedAppServer becomes the standard.
I am actually working primarily with NewThreadedAppServer since I have only
heard positive comments towards using it to replace ThreadedAppServer. My
comments apply to both however.
I have tried my above suggestion, dealing with shutDown() and it appears
this should ONLY be called from the _closeThread thread. Any references to
it elsewhere could initiate race conditions and end up with more than one
call to shutDown().
The existing run() function along with the Monitor quit function both
reference shutDown directly. While the existing run() function reference is
probably stale code (reference the KeyboardInterrupt discussion) the Monitor
use of shutDown will probably be a race condition.