I've been looking all over the place for a good timeout script that can kill a thread if it's been active for more than X seconds, but all the examples I've seen have flaws that don't always stop the thread. Using thread.join(x) ends up defeating the purpose of it being a thread.
The only decent example I've found is Timeout on a function call and that one's not without its flaws..
Anyone know of a better way to do this?
See my answer to python: how to send packets in multi thread and then the thread kill itself - there is a fragment with InterruptableThread class and example that kill another thread after timeout - exactly what you want.
There is also similar Python recipe at activestate.
I know this might not be what you want, but have you considered the signal approach?
Timeout on a function call
http://docs.python.org/library/signal.html#example
You can set an alarm signal at the beginning of the thread execution, and then stop the thread in the signal handler.