import signal signal.sigwait(sigset)
sigset
- набор/множество сигналов.Функция sigwait()
модуля signal
приостанавливает выполнение вызывающего потока до момента доставки одного из сигналов, указанных в наборе/множестве сигналов sigset
.
Функция принимает сигнал, удаляет его из списка ожидающих сигналов и возвращает номер сигнала.
Доступность: Unix.
Для получения дополнительной информации смотрите справочную страницу sigwait(3)
Смотрите так же функции модуля signal.pause()
, signal.pthread_sigmask()
, signal.sigpending()
, signal.sigwaitinfo()
и signal.sigtimedwait()
.
import signal, time def timer(): return time.strftime('%H:%M:%S', time.localtime()) def handle(signum, frame): return None signal.signal(signal.SIGALRM, handle) signal.alarm(5) for x in range(10): if x ==5: print(f'Ожидаем получение signal.SIGALRM') signal.sigwait({signal.SIGALRM}) print(f'{timer()} -> value = {x**2}') time.sleep(0.5) # 18:03:33 -> value = 0 # 18:03:33 -> value = 1 # 18:03:34 -> value = 4 # 18:03:34 -> value = 9 # 18:03:35 -> value = 16 # Ожидаем получение signal.SIGALRM # 18:03:38 -> value = 25 # 18:03:38 -> value = 36 # 18:03:39 -> value = 49 # 18:03:39 -> value = 64 # 18:03:40 -> value = 81