Сообщить об ошибке.

Функция pthread_kill() модуля signal в Python

Отправить сигнал OS в поток

Синтаксис:

import signal

signal.pthread_kill(thread_id, signalnum)

Параметры:

  • thread_id - номер целевого потока,
  • signalnum - номер сигнала.

Возвращаемое значение:

  • нет.

Описание:

Функция signal.pthread_kill() отправляет сигнал signalnum в поток thread_id, другой поток в том же процессе, что и вызывающая сторона.

Целевой поток может выполнять любой код Python или нет. Однако, если целевой поток выполняет интерпретатор Python, обработчики сигналов Python будут выполняться основным потоком (смотрите подраздел "Сигналы и потоки"). Следовательно, единственной точкой отправки сигнала в конкретный поток Python является принудительное завершение работающего системного вызова с помощью InterruptedError.

Используйте функцию threading.get_ident() или атрибут ident объектов threading.Thread, чтобы получить подходящее значение для аргумента thread_id.

Если аргумент signalnum равен 0, то сигнал не отправляется, но проверка ошибок все еще выполняется. Такое поведение можно использовать для проверки, работает ли целевой поток.

Вызывает событие аудита signal.pthread_kill с аргументами thread_id, signalnum.

Доступность: Unix. Для получения дополнительной информации смотрите справочную страницу pthread_kill(3).

Смотрите также функцию os.kill().

Примеры:

import threading, signal, sys

def handler(signum, frame):
    sys.exit(3)

>>> signal.signal(signal.SIGUSR1, handler)
# Выходим из интерпретатора Python с кодом 3
>>> signal.pthread_kill(threading.get_ident(), signal.SIGUSR1)