Python Glossary English

Python 3.5+Linux · macOSsignalпонятие

signal.Sigmasks

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

Перечисление IntEnum режимов pthread_sigmask: SIG_BLOCK, SIG_UNBLOCK и SIG_SETMASK. Только Unix (Linux, macOS).

Синтаксис

signal.pthread_sigmask(signal.SIG_BLOCK, {signal.SIGUSR1})

Разница режимов — главная ловушка: SIG_BLOCK добавляет сигналы к маске, SIG_UNBLOCK убирает, а SIG_SETMASK заменяет её целиком — и молча разблокирует всё, что не перечислено. Для восстановления прежней маски правильно SIG_SETMASK со значением, которое вернул предыдущий вызов. На Windows этого перечисления нет — AttributeError.

Примеры

import signal
print([m.name for m in signal.Sigmasks])  # → ['SIG_BLOCK', 'SIG_UNBLOCK', 'SIG_SETMASK']
old = signal.pthread_sigmask(signal.SIG_BLOCK, {signal.SIGUSR1})
print(signal.SIGUSR1 in signal.pthread_sigmask(signal.SIG_BLOCK, []))  # → True
signal.pthread_sigmask(signal.SIG_SETMASK, old)  # вернуть маску целиком

См. также

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