问题描述
我有一个pyGObject应用,然后运行它。一切正常,直到单击按钮的信号我需要运行def。它有一个很长的循环,我用
def on_launch_btn_clicked(self,button):
_thread.start_new_thread(launch,["thread"])
def launch(thread):
lines_list = open("../line.txt").split()
for line in lines_list:
select = machinestate.objects.get(id=1)
if not select.pause:
#my process
else:
def pause_lcd()
return "pause" #it for come out of def and close thread but I don't know it close that or not
此循环在另一个.py文件中
功能就像一个咒语,接下来我有一个暂停按钮,它将数据库暂停字段更改为True,并在每次迭代检查数据库时循环查看更改。当看到暂停为True时,它将运行
def pause_lcd():
app = app_list[0]
app.pause_action()
我在此def中运行Gtk应用
app_list = list()
def main(thread):
app = GUI()
app_list.append(app)
Gdk.threads_init()
Gtk.main()
在我的GUI类中,我有pause_action方法
def pause_action(self):
self.pause_btn.set_sensitive(True)
self.pause_btn.hide()
self.resume_btn.show()
当我单击暂停按钮一段时间后,出现此错误
[xcb] Unknown sequence number while processing queen
[xcb] Most likely this is a mulity-threaded client and XinitThreads has not been called
[xcb] Aborting,sorry about that
pyhton: ../../src/xcb_io.c:263 poll_for_event: Assertion '!xcb_xlib_threads_sequence_lost failed.
我有一堆线程,例如机器信息,时钟,机器温度和...
我做错了什么?
PS:此应用程序在Django项目中运行,我在其中使用Django模型,它是Django的应用程序,但它运行的是Gtk应用程序
解决方法
我怀疑 XCB 或 X11 服务器有问题(错误)。我从特定 X 服务器上的不同应用程序收到相同的错误消息(通过 ssh 使用 X11)。
emacs 的错误信息:
[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting,sorry about that.
emacs: xcb_io.c:263: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.
eclipse 的错误信息:
[xcb] Unknown sequence number while processing queue
[xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
[xcb] Aborting,sorry about that.
java: xcb_io.c:263: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.