Форум сайта python.su
14
Можно как-то сделать так, чтобы интерпретатор питона по ctrl+c сразу сдыхал, как это делают некоторые, например, перл?
Есть некоторые написанные альтернативно одаренными прогерами модули (среди них, кстати, grab), которые эту комбинацию тупо игнорят.
Офлайн
52
Раскладку надо переключать. Ctrl+C просто посылает SIGINT. Если модуль ловит KeyboardInterrupt или использует свой хэндлер для сигнала, то можно обнажиматься.
Да и никто не мешает сделать Ctrl+Z && kill -9 pid.
Отредактировано fata1ex (Июль 3, 2012 00:28:09)
Офлайн
14
fata1ex?
Раскладку надо переключать.
fata1exА под виндой? Никто не мешает запустить process explorer, найти нужный процесс питона итд?
Да и никто не мешает сделать Ctrl+Z && kill -9 pid.
Офлайн
75
odnochlen надо перехватить нажатия самому и закрыть программу самому
Офлайн
14
А как?
Офлайн
20
Под виндой: Ctrl + Break (SIGBREAK) *http://en.wikipedia.org/wiki/Break_key*
odnochlenНу по идее модулю не обязательно ловить Ctrl + C => KeyboardInterrupt и тупо игнорить. Вполне достаточно вызова функций из библиотек на C/etc. Или же мешает сам GIL.
ативно одаренными прогерами модули (среди них, кстати, grab), которые эту комбинацию тупо игнорят.
>>> max(xrange(2**30))

Офлайн
14
EBFEА это не одно и то же?
Под виндой: Ctrl + Break (SIGBREAK) *http://en.wikipedia.org/wiki/Break_key*
EBFEДа, блокирующие вызовы вроде сокетов иирк тоже не реагируют. Что делать?
KeyboardInterrupt не ловится, но и Ctrl+C не работает
Офлайн
20
odnochlenНет. http://msdn.microsoft.com/en-us/library/windows/desktop/ms682541(v=vs.85).aspx
А это не одно и то же?

Да, блокирующие вызовы вроде сокетов иирк тоже не реагируют. Что делать?Жать CRTL+BREAK
ну или переходить на Py 3.2 - там вроде бы изменили GILWikipedia
В версии 3.2 будет внедрён изменённый GIL. Основные нововведения:
* Переключение по таймауту, а не по количеству опкодов — в предыдущей версии GIL освобождался через каждые 100 операций. Но операция может выполняться от наносекунд, до долей секунд. В новой версии блокировка будет сниматься каждые 5 миллисекунд;
Отредактировано EBFE (Июль 3, 2012 20:30:34)
Офлайн
14
А какое отношение GIL имеет к блокирующим операциям?
Хаха, хорошо ты подсказал. Ctrl+Break сразу грохает процесс. А на юнипсах оно будет работать?
Отредактировано odnochlen (Июль 3, 2012 21:52:07)
Офлайн
20
odnochlenТайна сия великая есть (короче, не знаю я) . В этом случае может быть и не GIL виноват а сам интерпретатор.
А какое отношение GIL имеет к блокирующим операциям?

Ctrl+Break сразу грохает процесс. А на юнипсах оно будет работать?В bash: CTRL + Z && bg && kill $!
Отредактировано EBFE (Июль 3, 2012 23:03:50)
Офлайн