2010-11-29 37 views
1

使用Python 2.6,Twisted 10.1和GTK + 2.22,安裝了最新的pygtk,我在關閉時遇到問題。當我關閉應用程序並關閉反應堆(當然使用gtk2reactor)時,應用程序會凍結。Twisted + Gtk - 關閉不正常

我繞過了扭曲的源代碼並添加了調試消息。結果發生的是,'shutdown'事件觸發,PortableGtkReactor.crash被調用,其中調用gtk.main_quit。該事件在ReactorBase.runUntilCurrent的末尾處理。當函數返回時,控制權轉至ReactorBase.iterate,該控制權將控制返回至PortableGtkReactor.simulate,該控制權返回至... gtk.main()調用。它看起來像gtk只是不退出。

不幸的是,當我把一個非常簡單的例子與扭曲的gtk和「Hello World」樣本放在一起時,所有事情都可以正確關閉。這一定是我的應用程序正在做的事情。直到我可以進一步瞭解它,但...

什麼可能導致這種情況?像一個應用程序可以做什麼,導致GTK不退出?該應用程序在Gtk 2.12上運行良好,Python 2.5和Twisted 8.1如果有幫助的話。

回答

1

this question它似乎來自於導入win32ui模塊。但我認爲潛在的問題是更深入..

編輯:似乎是我的特定安裝的Windows 7和其他任何在這裏的問題。

0

線程,也許? Twisted reactor會在關閉時加入所有線程,如果您在掛起的callInThread中執行某些操作,則循環可能無法停止。 (我不確定如果你開始自己的線程會有什麼樣的行爲。)