Cleanly exiting multi thread application on SIGINT

2007-03-23 Thread jrpfinch
Is the following the most elegant way to exit a multi-threaded
application on a Ctrl-C?  I am a complete beginner and would have
thought there was some way of doing it without having to use while 1:
pass, but have yet to find a way.

N.B. exit() is a method for cleanly exiting the thread using a queue.

Many thanks

Jon

def main:
wt = workerThread()
wt.setDaemon(True)
wt.start()
ct = counterThread()
ct.setDaemon(True)
ct.start()
try:
while 1:
pass
except KeyboardInterrupt:
wt.exit()
ct.exit()

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Cleanly exiting multi thread application on SIGINT

2007-03-23 Thread Fredrik Lundh
jrpfinch wrote:

 Is the following the most elegant way to exit a multi-threaded
 application on a Ctrl-C?  I am a complete beginner and would have
 thought there was some way of doing it without having to use while 1:
 pass, but have yet to find a way.

 def main:
wt = workerThread()
wt.setDaemon(True)
wt.start()
ct = counterThread()
ct.setDaemon(True)
ct.start()
try:
while 1:
pass

you could at least insert a time.sleep(1), to avoid busy-looping.

/F 



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Cleanly exiting multi thread application on SIGINT

2007-03-23 Thread skip

Jon Is the following the most elegant way to exit a multi-threaded
Jon application on a Ctrl-C?  I am a complete beginner and would have
Jon thought there was some way of doing it without having to use while
Jon 1: pass, but have yet to find a way.

I thought there was some sort of wait() method in the threading module, but
I was mistaken.  Maybe:

while threading.activeCount():
time.sleep(0.01)

?

Skip
-- 
http://mail.python.org/mailman/listinfo/python-list