Python Glossary English

все Python 3Linux · macOSsignalфункция

signal.pause()

таймеры

Усыпляет процесс до прихода любого сигнала с обработчиком. Только Unix (Linux, macOS); на Windows функции нет.

Синтаксис

signal.pause()

Тайм-аута нет: если сигнал так и не придёт, программа уснёт навсегда. Есть гонка: сигнал, пришедший между проверкой условия и вызовом pause, уже обработан, и pause будет ждать следующего. Надёжная замена — заблокировать сигнал через pthread_sigmask и ждать его sigwait или sigtimedwait. Для «ждать до Ctrl+C» в серверах pause годится.

Примеры

import signal
got = []
old = signal.signal(signal.SIGALRM, lambda s, f: got.append(s))
signal.setitimer(signal.ITIMER_REAL, 0.05)  # без таймера уснём навсегда
signal.pause()
signal.signal(signal.SIGALRM, old)
print(got == [signal.SIGALRM])  # → True

См. также

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