Twisted + Gtk - 关机无法正常工作

时间:2010-11-29 21:36:54

标签: python pygtk twisted gtk

使用Python 2.6,Twisted 10.1和GTK + 2.22,安装了最新的pygtk,我在关机时遇到了问题。当我关闭我的应用程序并关闭反应器时(当然使用gtk2reactor),应用程序只是冻结。

我在扭曲的源周围戳了戳并添加了调试消息。最终发生的事情是'shutdown'事件触发,PortableGtkReactor.crash被调用,调用gtk.main_quit。该事件在ReactorBase.runUntilCurrent结束时处理。当函数返回时,控制转到ReactorBase.iterate,它将控制返回到PortableGtkReactor.simulate,然后返回到gtk.main()调用。看起来gtk似乎没有退出。

不幸的是,当我将一个非常简单的示例与twisted和gtk“Hello World”示例组合在一起时,所有内容都正确关闭。它必须是我的应用程序正在做的事情。直到我能够进一步弄明白,但是...

可能导致这种情况的原因是什么?像应用程序可以做什么导致gtk不退出?该应用程序在Gtk 2.12上运行良好,使用Python 2.5和Twisted 8.1,如果这有帮助的话。

2 个答案:

答案 0 :(得分:1)

this question起,它似乎来自导入win32ui模块。但我认为潜在的问题更深层次。

编辑:我的特定安装Windows 7以及其他任何内容似乎都存在问题。

答案 1 :(得分:0)

线程,也许? Twisted反应器在关闭时加入所有线程,如果你在挂起的callInThread中做某事,你的循环可能无法停止。 (我不确定如果你开始自己的线程会有什么行为。)