Making a timebomb

Cantankerous Old Git CantankerousOldGit at
Sun Aug 7 14:02:01 CEST 2005

Peter Hansen wrote:
> Cantankerous Old Git wrote:
>> callmebill at wrote:
>>> I have a server that right now runs infinitely.  I'd like to make it
>>> die after some amount of time.  
>> The proper way to do it is to have the timer set a flag that the other 
>> threads check regularly. The threads can then clean up and exit asap.
>> The dirty way, which can leave corrupt half-written files and other 
>> nasties, is something like sys.exit().
> sys.exit() won't help you if your server is running in the main thread, 
> nor if your server thread is not marked as a daemon, but that does raise 
> another possibility.  Instead of doing serve() in the main thread, spawn 
> off a child thread to do the serving, and call setDaemon(True) on it. 
> Then the _main_ thread can do sys.exit() and the server thread will be 
> terminated (somewhat messily perhaps) -- even if it is blocked in an 
> accept() call or some other external blocking call.

I assume you know that I actually meant System.exit(). Why do you 
think that won't help?

More information about the Python-list mailing list