|
Added diff as attachment that implements desired functionality. Diff was against the
latest code in subversion repository.
Graham Dumpleton made changes - 06/Aug/05 09:39 AM
Note, attached diff has minor mistake. See following excerpt from mailing
list note this as well as a bit of documentation. > I need to know what all parameters apache.register_cleanup() is expecting. Just like you had called req.register_cleanup() except that cleanup handler is called on server shutdown like req.server.register_cleanup(). register_cleanup(callable[, data]) Registers a cleanup. Argument callable can be any callable object, the optional argument data can be any object (default is None). At Apache child process termination, callable will be called with one argument, data. If errors are encountered during cleanup processing, they should be in error log. Note that I have actually made a minor mistake in the code. In apache.py, the prototype should be: def register_cleanup(handler,data=None): _apache.register_cleanup(_interpreter,_server,handler,data) I used "args=()" which isn't technically correct but only in as much as I used "()" instead of "None". I was thinking you could supply a tuple of arguments whereas you can actually only supply a single argument. What I did wouldn't have stopped it working though. Anyway, you should be able to do: def shutdown1(): apache.log_error("shutdown1") apache.register_cleanup(shutdown1) def shutdown2(data): apache.log_error("shutdown2 %r"%data) apache.register_cleanup(shutdown2,"data") I have integrated Graham's patch (with data=None instead of data=()). I have also added a unit test to check whether the new apache.register_cleanup funciton works correctly? I ran the unit test and everything seems OK, there is no regression and the new function is OK.
Nicolas Lehuen made changes - 06/Aug/05 06:11 PM
Although closing this issue, should be noted that both apache.register_cleanup() and req.server.register_cleanup() may need to be deprecated and removed. This is because the only mechanism for having a cleanup function run on server shutdown is error prone as it invokes stuff from a signal handler. See MODPYTHON-109.
Graham Dumpleton made changes - 05/Mar/06 03:05 PM
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
http://www.modpython.org/FAQ/faqw.py?req=show&file=faq03.011.htp