Python 3.3+Linux · macOSsignalфункция
signal.sigpending()
маски и ожидание
Возвращает множество сигналов, которые пришли, пока были заблокированы, и ждут доставки. Только Unix (Linux, macOS).
Синтаксис
signal.sigpending()
Без блокировки через pthread_sigmask результат почти всегда пуст: незаблокированный сигнал доставляется сразу. Это множество, а не очередь — сколько раз сигнал пришёл, не узнать. Элементы — signal.Signals, поэтому проверка «signal.SIGUSR1 in pending» работает, а их номера отличаются между ОС.
Примеры
import signal
old = signal.pthread_sigmask(signal.SIG_BLOCK, {signal.SIGUSR1})
print(signal.sigpending()) # → set()
signal.raise_signal(signal.SIGUSR1)
print([s.name for s in signal.sigpending()]) # → ['SIGUSR1']
signal.sigwait({signal.SIGUSR1}) # забрать, чтобы не убил процесс
signal.pthread_sigmask(signal.SIG_SETMASK, old)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности