我正在处理读取彼此的可绘制对象的多个进程,因此需要同步。 XLockDisplay
应该从显示中“锁定所有其他线程”,但这是否适用于多个进程?
还需要所有进程都调用env | grep -i proxy
还是只调用XInitThreads
的进程?
答案 0 :(得分:1)
XLockDisplay函数(和LockDisplay宏)必须在同一个XClient应用程序内使用,即进程... Xtws XClients对它们没有意义(所以btw 2进程)。这是一种防止尝试访问同一X连接的多个线程(因此在同一进程内)的一种方法(例如,请参阅GLX-1.4,第2.7章)
为了读取另一个窗口的全部内容(缓冲区),您可以查看从桌面或单个窗口制作屏幕截图的任何应用(例如,请参见“ scrot”源代码)。
如果要在XClient之间交换数据,请使用其“属性/原子”(请参阅XLib ICCC)。