import signal
from multiprocessing import Process, Value
from time import sleep
breaker = Value('b', True)
def chill_for_a_while(period, breaker):
while(breaker.value):
sleep(period)
print "Client of period {} exiting now.".format(period)
def sig_int_handler(sig, frame):
global breaker
breaker.value = False
if __name__ == "__main__":
signal.signal(signal.SIGINT, sig_int_handler)
processes = [Process(target=chill_for_a_while, args=[x, breaker]) for x in range(5)]
for process in processes:
process.start()
while(breaker.value):
sleep(1)
print "Main process exiting now."