2010-11-29 5 views
1

최신 pygtk가 설치된 Python 2.6, Twisted 10.1 및 GTK + 2.22를 사용하여 시스템 종료시 문제가 발생합니다. 응용 프로그램을 닫고 원자로를 종료하면 (물론 gtk2reactor을 사용) 응용 프로그램이 정지됩니다.Twisted + Gtk - 종료가 제대로 작동하지 않습니다.

꼬인 소스를 중심으로 디버그 메시지를 추가했습니다. 무슨 일이 일어나면 '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에서 잘 작동합니다.

답변

1

this question부터 win32ui 모듈을 가져 오는 것으로 보입니다. 하지만 근본적인 문제가 더 깊다고 생각합니다.

EDIT : Windows 7의 특정 설치 및 기타 항목에 문제가있는 것으로 보입니다.

0

스레드? Twisted reactor는 시스템 종료시 모든 스레드를 연결하며, callInThread에있는 작업을 수행하면 루프가 멈추지 않을 수도 있습니다. (자신의 스레드를 시작하는 경우 어떤 동작이 될지 잘 모르겠습니다.)

관련 문제