Vitja Makarov, 21.11.2010 10:51: > if __name__ == '__main__': > try: > main() > except Exception: > traceback.print_exc() > try: > check_thread_termination(ignore_seen=False) > except PendingThreadsError: > # normal program exit won't kill the threads, do it the > hard way here > os._exit(1) > > check_thread_termination() should be called in both exception and > normal case, so why do not place check in finally?
Note that this exception handler is only ever reached when an exception terminates the test runner's main() function. The other (more important) cases are handled by the exit code at the end of main(). > So now it doesn't work. Why don't you want to hook it to > threading._shutdown and sys.exitcall? I wouldn't mind doing that, but my feeling is that it makes things less predictable. > When I mean gil I mean that gil may be never released in cython code. Ah, ok. Yes, that may be worth a ticket, although I think having code depend on the GIL being released arbitrarily has a bit of a code smell. It should never happen in Cython code, although it may be worth discussing for plain Python modules. Stefan _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
