Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 1, 2012 23:25:45

redixin
От:
Зарегистрирован: 2006-11-27
Сообщения: 66
Репутация: +  1  -
Профиль   Отправить e-mail  

толстые обработчики сигналов

Ув эксперты, подскажите, что будет, если во время работы обработчика сигнала, придет еще один такой же сигнал? Нужно ли мне заботиться о реентрабельности обработчика, или заботливый cpython делает всю скучную работу сам?
Или киньте ссылку где описаны тонкости обработки сигналов в cpython, я чего то не могу найти.



Офлайн

#2 Авг. 2, 2012 12:25:15

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

толстые обработчики сигналов

Для таких случаев всегда используют очередь.
Вне зависимости от языка.
Если это не какой-нить сигнал прерывания.



Отредактировано Lexander (Авг. 2, 2012 12:40:36)

Офлайн

#3 Авг. 3, 2012 16:22:58

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

толстые обработчики сигналов

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



Офлайн

#4 Авг. 4, 2012 16:25:09

redixin
От:
Зарегистрирован: 2006-11-27
Сообщения: 66
Репутация: +  1  -
Профиль   Отправить e-mail  

толстые обработчики сигналов

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

они самые



Офлайн

#5 Авг. 4, 2012 18:44:44

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

толстые обработчики сигналов

Офлайн

#6 Авг. 4, 2012 20:19:10

redixin
От:
Зарегистрирован: 2006-11-27
Сообщения: 66
Репутация: +  1  -
Профиль   Отправить e-mail  

толстые обработчики сигналов

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

это что-то совсем другое



Офлайн

#7 Авг. 5, 2012 06:48:01

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

толстые обработчики сигналов

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

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

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

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

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



Офлайн

#8 Авг. 5, 2012 17:37:28

redixin
От:
Зарегистрирован: 2006-11-27
Сообщения: 66
Репутация: +  1  -
Профиль   Отправить e-mail  

толстые обработчики сигналов

я примерно так все и представлял. спасибо



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version