如何SIGINT
在翻译的 RPython 程序中捕获信号(特别是/特别是)?
我已经浏览了 PyPy 源代码树,找到了 CPythonsignal
模块,并尝试在翻译的程序中使用它会在翻译过程中出现预期的错误:
[translation:ERROR] Exception: unexpected prebuilt constant: <built-in function signal>
还有,pypy.module.signal
但我不知道这是否是我应该使用的,或者如何使用它。该模块确实提供了一个signal
功能,但它需要一个额外的space
参数;这些space
参数出现在源代码树的几个地方,我无法弄清楚它们指的是什么,或者我应该在那里传递什么。
背景:我希望有一个可以运行任意时间长度的计算,但要捕获^C
,以便我可以在程序退出之前打印出迄今为止的结果。(主循环周围的明显try: ... except KeyboardInterrupt: ...
也不起作用。)