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 сбрасывается. Изначально задумывалось два потока, один обрабатывает сигнал, а другой выполняет основной цикл. Где моя ошибка подскажите.
