Xlib:回复类型为0x2的序列丢失

时间:2014-01-10 13:19:24

标签: multithreading xlib motif

我在我正在维护的程序中发生了这个错误(Xlib:回复类型丢失的序列0x2)(我不是原始开发人员)。

我远不是Xlib编程方面的专家,而且我在标签中包含了motif,因为该程序是使用该工具包编写的。 我在发布之前做了一些研究,发现这个错误可能是由于一个线程(不同于UI的线程)试图更新UI本身。在代码中搜索我发现了一些对XTestFakeKeyEvent和XtIsManaged的调用,我肯定会在与UI不同的线程中使用它。

我的问题是:这两个函数是否会产生此错误?

我认为只有更新GUI的功能(例如设置标签的文本)才会引起那种问题(而这两种功能似乎不会直接影响gui),但老实说我不知道知道....

1 个答案:

答案 0 :(得分:0)

XTestFakeKeyEvent很可能是罪魁祸首。它会注入一个关键的按下/释放事件,这可能会搞乱事件队列。

XtIsManaged不会导致更改,但如果托管状态在执行期间发生更改,则可能会给出错误的结果。