Suppose I have something like this :
import threading
import time
_FINISH = False
def hang():
    while True:
        if _FINISH:
            break
        print 'hanging..'
        time.sleep(10)
def main():
    global _FINISH
    t = threading.Thread(target=hang)
    t.setDaemon( True )
    t.start()
    time.sleep(10)
if __name__ == '__main__':
    main()
If my thread is daemon, do I need to have a global _FINISH to control exit clause of break loop? I tried and I don't seem to need it - when program exits ( in that case after the sleep ) then program terminates, which closes the thread too.
But I've seen that code too - is it just bad practise? Can I get away with no global flag for controlling the loop?
 
     
     
    