import signal
def sig_handler(signum,temp):
for_print.acquire()
print("Got signal",signum,'at',time.asctime())
for_print.release()
def signaler():
while True:
signal.pause()
signal.signal(12,sig_handler)
for_print = threading.Lock()
sgn = threading.Thread(target=signaler,args=())
sgn.start()
while True:
time.sleep(7)
for_print.acquire()
print('main thread')
for_print.release()
Код должен выдавать раз в 7 секунд фразу 'main thread', а по сигналу kill -12 PID выводить инфу о времени сигнала. Проблема в том что после вывода инфы о сигнале сразу выводится 'main thread' и таймер sleep сбрасывается. Изначально задумывалось два потока, один обрабатывает сигнал, а другой выполняет основной цикл. Где моя ошибка подскажите.