any way to know when the program is exiting?
Markus Stenberg
mstenber at cc.Helsinki.FI
Thu Jul 29 03:26:59 EDT 1999
More information about the Python-list mailing list
Thu Jul 29 03:26:59 EDT 1999
- Previous message (by thread): any way to know when the program is exiting?
- Next message (by thread): any way to know when the program is exiting?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Ovidiu Predescu <ovidiu at cup.hp.com> writes: > I was wondering if there is any way in a __del__ method to know when it's > invoked on the way out, as a result of the program going away? AFAIK, not.. > I have a __del__ method of a class that sends a message to a global > variable. It happens that on the way out, that value in that variable is > destroyed before the __del__ methods of my instances are invoked. The > result is that I have a bogus value that doesn't respond to the usual > methods anymore. How can I prevent sending messages to that object? Keep reference to the global variable in the classes with __del__. Example follows: (How I kill child processes, and ensure the os module is garbage collected _after_ the DelWrapper instance is __del__'d) class DelWrapper: """ quick-n-dirty class to wrap __del__ """ def __init__(self, f): self.__del__ = f def foo(): ... # proprietary, super-secret code snipped global __tmp __tmp = DelWrapper(lambda k=os.kill,pid=pid:apply(k, (pid, 15))) > A possible solution would be to use atexit() but this doesn't work if the > user program that's using my library replaces it with its own function. > Any ideas? Occassionally, some ;) -Markus -- "I am Grey. I stand between the candle and the star. We are Grey. We stand between the darkness and the light." - Delenn / Babylon 5 [ #1 scifi show ATM, IMO ]
- Previous message (by thread): any way to know when the program is exiting?
- Next message (by thread): any way to know when the program is exiting?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list