On 2012-04-02, at 4:49 PM, Paul Colomiets wrote: > l.lock() > try: > ... > finally: > l.unlock() > > Which will break if you interrupted just after lock is acquired. I guess the best way to solve this puzzle, is to track all locks that the thread acquires and release them in case of forced interruption. - Yury