Программа прерывания Python заблокирована в DLL - PullRequest
2 голосов
/ 11 августа 2009

Как я могу гарантировать, что программа на python может быть прервана с помощью Ctrl-C или аналогичного механизма, если она заблокирована в коде внутри DLL?

Ответы [ 2 ]

1 голос
/ 11 августа 2009

Не уверен, что это именно то, что вы просите, но есть проблемы при попытке прервать (через Ctrl-C) многопоточный процесс Python. Вот видео разговора о Python Global Interpreter Lock, в котором также обсуждается эта проблема:

Поразительный Python GIL

0 голосов
/ 11 августа 2009

Возможно, вы захотите взглянуть на этот список рассылки , чтобы найти пару других предложений, но окончательных ответов нет.

Я сталкивался с проблемой несколько раз, и я могу, по крайней мере, подтвердить, что это происходит при использовании FFI в Haskell. Я мог поклясться, что однажды увидел в документации FFI на Haskell что-то, в котором упоминается, что DLL не будут возвращаться из сигнала ctrl-c, но мне не повезло найти этот документ.

Вы можете попробовать , используя ctrl-break , но это не работает, чтобы вырваться из DLL в Haskell, и я сомневаюсь, что это будет работать и в Python. <Ч /> Обновление : ctrl-break у меня работает в Python, когда ctrl-c нет, во время вызова функции DLL в бесконечном цикле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...