Call a function when a thread exits

Giampaolo Rodola' gnewsg at gmail.com
Thu May 7 21:12:44 EDT 2009


Hi,
I'm searching for a smooth way to call a certain function when a
thread has finished its job.
I guess I can keep calling isAlive() in a loop and call my function
when it returns False but it's not very elegant.
Actually I'm a bit surprised it doesn't exists an "atexit" function.
Something like:

import threading, time

def myfun():
    time.sleep(1)
    print "hello"

def cleanup():
    print "thread finished, starting cleanup operations..."

t = threading.Thread(target=myfun)
t.atexit(target=cleanup)
t.start()


Is there a reason why there's no such thing in the threading module?


--- Giampaolo
http://code.google.com/p/pyftpdlib/



More information about the Python-list mailing list