2010/11/21 Stefan Behnel <stefan...@behnel.de>: > 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. >
Yeah I see. The problem is check_thread_termination() ignores ignore_seen argument. > >> 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. > Would 'with nogil' help here? -- vitja. _______________________________________________ Cython-dev mailing list Cython-dev@codespeak.net http://codespeak.net/mailman/listinfo/cython-dev