I posted this on the Pyro list but I'm not sure if it's related specifically to Pyro. The "finally" clause below is not executed when f() runs on on a (daemon) thread and the program exits. DAEMON here is a global Pyro.code.Daemon instance.
def f(): try: DAEMON.requestLoop() finally: # nothing is printed if f() runs in a thread print "i am here!!" DAEMON.shutdown() print "i am over!!" Is "finally" not guaranteed to be executed in a non-main thread or is there something else going on ? George -- http://mail.python.org/mailman/listinfo/python-list