Сообщить об ошибке.

Функция sigwait() модуля signal в Python

Приостановить выполнение до получения сигнала

Синтаксис:

import signal

signal.sigwait(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