gpt4 book ai didi

c - XCB 中需要 XEventsQueued(display, QueuedAfterReading)

转载 作者:行者123 更新时间:2023-12-04 05:03:48 26 4
gpt4 key购买 nike

我正在将一些 CYBOI 代码从 Xlib 迁移到 XCB。

CYBOI 为不同的通信 channel 使用了几个线程,例如:
串行端口、终端、套接字、x_window_system。
但是,它仅将这些线程用于信号/事件/数据检测;
实际的接收和发送是在主线程中完成的,
为了避免地址空间的任何多线程冲突。

对于 x_window_system channel ,我之前 detected events在一个线程中:

int n = XEventsQueued(display, QueuedAfterReading);

检测到事件后,设置了“中断标志”。
之后,主线程为 reading the actual event使用:
XNextEvent(display, &event);

当没有更多事件可用时,主线程停止接收事件
并且 x_window_system channel 线程再次开始使用 XEventsQueued 进行监听。

现在,我正在将代码迁移到 X C Binding (XCB)。
有一个阻塞函数“xcb_wait_for_event”,可以很好地读取事件。
如果有未决事件,我想念的是一些“向前看”的功能,
没有实际从队列中返回/删除事件。

我现在在网上阅读了几个小时,但找不到这样的功能。
“xcb_poll_for_event”没有帮助。屏蔽对我来说很好,
因为我的事件检测在它自己的线程中运行。
作为第三个输入函数的“xcb_request_check”似乎不是我想要的。

有人可以帮帮我吗?

谢谢,
基督教

最佳答案

您在寻找xcb_poll_for_queued_event(xcb_connection_t *c)哪个返回下一个事件而不从连接中读取?

关于c - XCB 中需要 XEventsQueued(display, QueuedAfterReading),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15775281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com