You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mod_python-dev@quetz.apache.org by "Graham Dumpleton (JIRA)" <ji...@apache.org> on 2005/08/06 06:24:35 UTC

[jira] Commented: (MODPYTHON-37) Add apache.register_cleanup().

    [ http://issues.apache.org/jira/browse/MODPYTHON-37?page=comments#action_12317831 ] 

Graham Dumpleton commented on MODPYTHON-37:
-------------------------------------------

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")


> Add apache.register_cleanup().
> ------------------------------
>
>          Key: MODPYTHON-37
>          URL: http://issues.apache.org/jira/browse/MODPYTHON-37
>      Project: mod_python
>         Type: New Feature
>   Components: core
>     Versions: 3.1.4
>     Reporter: Graham Dumpleton
>     Priority: Minor
>  Attachments: register_cleanup.diff.txt
>
> The only way to register cleanup methods to be executed upon child termination
> is through req.server.register_cleanup(). Since the cleanup method isn't specific
> to a request, it seems that there should also be an apache.register_cleanup(). This
> would allow cleanup function registration upon child termination to be done from
> a module imported using the PythonImport directive.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira