Catch script hangs
exarkun at twistedmatrix.com
exarkun at twistedmatrix.com
Sun Sep 27 19:28:08 EDT 2009
On 10:40 pm, bakes at ymail.com wrote:
>Due to an ftp server issue, my python script sometimes hangs whilst
>downloading, unable to receive any more data. Is there any way that I
>could have python check, maybe through a thread or something, whether
>it has hanged (or just, if it's still active after 10 seconds, stop
>it?). I have looked at threading but there does not seem to be a stop
>method on threading, which is a problem. Could the lower level thread
>module be a solution?
No. There are a great many issues which arise when trying to forcibly
terminate a thread. Python doesn't expose this functionality because
most platforms don't provide it in a safe or reliable way.
You could give Twisted's FTP client a try. Since it isn't blocking, you
don't need to use threads, so it's easy to have a timeout.
You could also explore solutions based on signal.alarm(). A single-
threaded signal-based solution has some issues as well, but not nearly
as many as a thread-based solution.
Jean-Paul
More information about the Python-list
mailing list