Python Glossary English

Python 3.3+Linuxsignalфункция

signal.sigtimedwait()

маски и ожидание

Как sigwaitinfo, но с тайм-аутом: по истечении возвращает None; timeout=0 — мгновенный опрос. Linux; на macOS функции нет.

Синтаксис

info = signal.sigtimedwait(sigset, timeout)

По истечении срока исключения нет — только None, так что результат нужно проверять перед обращением к .si_signo. Ожидаемые сигналы должны быть заблокированы, иначе их перехватит обработчик. Отрицательный тайм-аут — ValueError. Документация пишет «Unix», но на macOS функции нет.

Примеры

import signal
old = signal.pthread_sigmask(signal.SIG_BLOCK, {signal.SIGUSR1})
print(signal.sigtimedwait({signal.SIGUSR1}, 0.01))  # → None — сигнала не было
signal.raise_signal(signal.SIGUSR1)
info = signal.sigtimedwait({signal.SIGUSR1}, 0)
print(info.si_signo == signal.SIGUSR1)  # → True
signal.pthread_sigmask(signal.SIG_SETMASK, old)

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности