我正在QNX (目标:powerpc-未知-nto-qnx6.5.0)上运行扭/横梁. is,但是它似乎不支持siginterrupt()和SA_RESTART标志。因此,在嵌入式python中不存在signals.siginterrupt()。
有没有办法在这样的系统上运行/修补python/扭?现在,由于signals模块没有siginterrupt(),所以在安装处理程序时它就会死掉。即使在以前的2.6天,当iternet/signals被构建为c库时,它们仍然依赖于使用SA_RESTART实现σ中断。
还有别的选择吗?
发布于 2014-10-10 21:41:49
你试过reactor.run(installSignalHandlers=False)了吗?这在一定程度上限制了反应堆的功能,但它可能允许你一瘸一拐地前进。
发布于 2014-10-10 22:22:38
有没有办法在这样的系统上运行/修补python/扭?
一般的答案是“端口扭曲到您的目标平台”。它与运行的平台进行了广泛的交互。您可能会用一个简单的补丁来骗它不让AttributeError死在一个地方,但这并不意味着Twisted实际上会像它想要的那样运行。
您是否计划完成Twisted到QNX的移植工作?或者你只是把你的手指和信号问题放在一起,其他一切都会正常工作吗?至少,您应该运行测试套件,以查看哪里可能存在问题(尽管通过测试也不能保证Twisted实际上工作正常,因为这些测试都是考虑到其他平台编写的)。
一个更具体的答案是,您可以获取twisted.internet._signals模块的旧版本(尝试r35834;r35835删除了许多旧的支持代码)。Python 3的移植工作从这个模块中删除了一些备用的信号处理策略(不是很好,而是更可移植)。
https://stackoverflow.com/questions/26308150
复制相似问题