Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

#41 allow subclassing of ThreadedAppServer

closed-out-of-date
nobody
WebKit (45)
3
2006-07-07
2002-12-18
Stuart Donaldson
No

This patch allows for subclassing of ThreadedAppServer.
It updates bothThreadedAppServer.py, and the proposed
replacement of NewThreadedAppServer.py

An overview of how this is accomplished is as follows:

Launch.py is updated to allow specification of a module
which does not need to reside under WebKit. The
specified python module path can either be a module
(which must contain a function main) or can be a
reference to a function whch is used in place of main.

The function main is called with the commandline to
start the server.

Within ThreadedAppServer.py (and
NewThreadedAppServer.py) the function main() takes an
optional argument specifying the serverClass. The
serverClass defaults to the ThreadedAppServer defined
within the current module.

To use this, derive a subClass of ThreadedAppServer
adding or altering functionality as you wish.

Then declare a function such as main() which at least
must take the command line arguments. If you want to
parse these yourself, that's OK, but unless you are
adding functionality beyond what is provided in the
main from ThreadedAppServer, you can turn around and
call that main function, passing in your new class as
the serverClass.

New method added include:
waitShutdown() wait until the shutDown completes.

Note that much of the functionality of run() was moved
into a run() method on the ThreadedAppServer. I also
chose not to pass arguments into mainloop() but rather
to make them properties on the object. This is because
alternate mainloop() implementations (ie:
NewThreadedAppServer) may take different arguments.
Matching the properties will be simpler and more
streightforward.

I should also note this includes a fix for the bug
630432 which fixed some monitor issues on NT. Although
this has not been tested on NT.

There is a TestServer.py file which tests this. I
didn't know exactly where to put it, I don't think it
belongs in WebKit, but perhaps in a WebKit/Tests. But
that doesn't exist.

Discussion

  • subclass ThreadedAppServer - updated patch supersedes previous

     
  • Logged In: YES
    user_id=326269

    Oops, I noticed I had some debugging code still in
    Launch.py. This patch supersedes the previous patch.

     
  • Logged In: YES
    user_id=326269

    This patch is being worked on by the developer listed in the
    Assigned field. A resolution should be forthcoming.

    If you have any questions or comments on this item, please
    contact the developer.

     
    • assigned_to: nobody --> stuartd
     
  • Logged In: YES
    user_id=326269

    This will be deferred until after the 0.8 release.

     
    • priority: 5 --> 3
    • assigned_to: stuartd --> nobody
     
    • status: open --> closed-out-of-date
     
  • Logged In: YES
    user_id=193957

    Unfortunately it seems this never was incorporated into
    Webware, but ThreadedAppServer developed in completely
    different ways after 0.8.1, so that this cannot be merged
    any more.