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Сообщить о неточности