Python Glossary English

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