Как поймать сигналы (особенно/особенно SIGINT
) в переведенной программе RPython?Улавливающие сигналы в RPython
Я grepped через источник дерева PyPy, я нашел модуль CPython signal
, и пытается использовать это в переводе программы дает ожидаемую ошибку при переводе:
[translation:ERROR] Exception: unexpected prebuilt constant: <built-in function signal>
Там есть также pypy.module.signal
, но я не знаю, что я должен использовать или как его использовать. Этот модуль предоставляет функцию signal
, но для этого требуется дополнительный параметр space
; эти параметры space
появляются в нескольких местах через исходное дерево, и я не могу понять, на что они ссылаются, или что я должен пройти там.
фон: Я ищу иметь вычисление, которое работает для произвольного отрезка времени, но захватить ^C
так, что я могу распечатать результаты до сих пор до выхода из программы. (Очевидный try: ... except KeyboardInterrupt: ...
вокруг основного контура также не работает.)
Спасибо, предположительно, вы запустили это с главной нити? Это очень похоже на оживленное ожидание. Кроме того, [interp_signal.signal] (https://bitbucket.org/pypy/pypy/src/7fc6072593dd/pypy/module/signal/interp_signal.py#cl-249) не является полезным/полезным? Кажется, что все это сделано управляемым образом, но я не могу понять, что такое параметр 'space' (я думаю, это действительно мой реальный вопрос, я понимаю, если вы не знакомы с внутренними элементами RPython и так что не могу ответить на этот вопрос ... и не могу, ха-ха!) – huon
(я добавил немного больше вопросов на вопрос, если это вообще актуально.) – huon
Вы должны иногда запускать цикл, который я дал для проверки для прерываний. –