atexit

Freeing in an atexit()

Is there any point to freeing memory in an atexit() function? I have a global variable that gets malloc'ed after startup. I could write an atexit() function to free it, but isn't the system going to reclaim all that memory when the program exits anyway? Is there any benefit to being tidy and actively cleaning it up myself? ...

Python Multiprocessing atexit Error "Error in atexit._run_exitfuncs"

I am trying to run a simple multiple processes application in Python. The main thread spawns 1 to N processes and waits until they all done processing. The processes each run an infinite loop, so they can potentially run forever without some user interruption, so I put in some code to handle a KeyboardInterrupt: #!/usr/bin/env python im...

WSACleanup and atExit

Hi, Is it okay to register WSACleanup through atExit function ? We have several applications that can terminate at different points in the code so we would like to avoid putting WSACleanup everywhere throughought the code. Curently we call WSAStartup / WSACleanup through DllMain since we have a dll that is used by all these applications...

Is registered atexit handler inherited by spawned child processes?

I am writing a daemon program using python 2.5. In the main process an exit handler is registered with atexit module, it seems that the handler gets called when each child process ends, which is not I expected. I noticed this behavior isn't mentioned in python atexit doc, anybody knows the issue? If this is how it should behave, how c...

ruby at_exit exit status

Can i determine selves process exit status in at_exit block? at_exit do if this_process_status.success? print 'Success' else print 'Failure' end end ...

How can you ensure registered atexit function will run with AppHelper.runEventLoop() in PyObjC?

Hi all, I'm just wondering why I my registered an atexit function... e.g. import atexit atexit.register(somefunc) ... AppHelper.runEventLoop() Of course I know when will atexit won't work. When I comment out AppHelper.runEventLoop() the atexit function gets called. I also browsed my pyobjc egg, and I saw under __init__.py under objc ...

How can I call a routine automatically when the run ends in specman?

Is there any way to specify that a function should be called when a test ends in Specman? I'm looking for something similar to C's atexit(). ...

How can I schedule some code to run after all '_atexit()' functions are completed

I'm writing a memory tracking system and the only problem I've actually run into is that when the application exits, any static/global classes that didn't allocate in their constructor, but are deallocating in their deconstructor are deallocating after my memory tracking stuff has reported the allocated data as a leak. As far as I can t...

In C, missing link between "Main process ends" to "call any functions registered with atexit"

In C, when the main process ends -- how does it know to call any functions registered with atexit()? I understand how atexit() works, but I don't understand the communication between "Main process ending" and "call any functions registered with atexit()" I'm being a bit redundant. Thanks! ...

Is this the definitive ref counted Objective C singleton implementation??

Here is what I have concocted, after poring over the singleton literature. Have I forgotten anything? @implementation MySingleton static MySingleton *mySharedInstance = nil; //called by atexit on exit, to ensure all resources are freed properly (not just memory) static void singleton_remover() { //free resources here } + (MySin...

Can I undo or remove an atexit command?

If I place atexit( fn ); on the exit stack, it will get executed when the program exits: returns from main() or via exit(). Can I remove it from the stack? Why do I want to do this, you ask? I was experimenting with a simple try-catch mechanism using atexit, setjmp and longjmp. It would be just perfect if I could undo-atexit(fn); - ev...

Python Process won't call atexit

I'm trying to use atexit in a Process, but unfortunately it doesn't seem to work. Here's some example code: import time import atexit import logging import multiprocessing logging.basicConfig(level=logging.DEBUG) class W(multiprocessing.Process): def run(self): logging.debug("%s Started" % self.name) @atexit.regis...

Referencing other modules in atexit

I have a function that is responsible for killing a child process when the program ends: class MySingleton: def __init__(self): import atexit atexit.register(self.stop) def stop(self): os.kill(self.sel_server_pid, signal.SIGTERM) However I get an error message when this function is called: Traceback (...

Alternative to python atexit module that works when called from other scripts

Using atexit.register(function) to register a function to be called when your python script exits is a common practice. The problem is that I identified a case when this fails in an ugly way: if your script it executed from another python script using the execfile(). In this case you will discover that Python will not be able to locate...

python 2.6.x theading / signals /atexit fail on some versions?

I've seen a lot of questions related to this... but my code works on python 2.6.2 and fails to work on python 2.6.5. Am I wrong in thinking that the whole atexit "functions registered via this module are not called when the program is killed by a signal" thing shouldn't count here because I'm catching the signal and then exiting cleanly?...

dlclose problem

plugin1.cpp: #include <iostream> static class TestStatic { public: TestStatic() { std::cout << "TestStatic create" << std::endl; } ~TestStatic() { std::cout << "TestStatic destroy" << std::endl; } } test_static; host.cpp #include <dlfcn.h> #include <iostream> int main(int argc,char argv*[]) { void* handle = dlop...