Найти - Пользователи
Полная версия: толстые обработчики сигналов
Начало » Python для экспертов » толстые обработчики сигналов
1
redixin
Ув эксперты, подскажите, что будет, если во время работы обработчика сигнала, придет еще один такой же сигнал? Нужно ли мне заботиться о реентрабельности обработчика, или заботливый cpython делает всю скучную работу сам?
Или киньте ссылку где описаны тонкости обработки сигналов в cpython, я чего то не могу найти.
Lexander
Для таких случаев всегда используют очередь.
Вне зависимости от языка.
Если это не какой-нить сигнал прерывания.
Андрей Светлов

Имеются в виду posix signals (http://en.wikipedia.org/wiki/Unix_signal) или что-то другое?

redixin
Андрей Светлов
Имеются в виду posix signals (http://en.wikipedia.org/wiki/Unix_signal) или что-то другое?

они самые
redixin
Lexander
Это
http://www.sagemath.org/doc/developer/coding_in_cython.html#interrupt-and-signal-handling
читали?

это что-то совсем другое
Андрей Светлов

Когда сигнал срабатывает — выставляется флажок и форсируется переключение на главный поток (с не-сигнальным стеком).

Eval-Loop главного потока исполняет код обработчиков сигналов перед выполнением очередного ординарного байткода.

Таким образом реентрабельность получается сама (там еще thread locks беруться, чтобы себе на хвост не наступить).

Я год назад писал http://asvetlov.blogspot.com/2011/07/signal.html — это о немного другом аспекте в обработке сигналов.

Если все еще непонятно — спрашивайте.

redixin
я примерно так все и представлял. спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB