代码之家  ›  专栏  ›  技术社区  ›  Andreas

XLockDisplay()如何跨多个进程工作?

  •  0
  • Andreas  · 技术社区  · 6 年前

    我正在处理多个进程,这些进程读取彼此的绘图,因此需要同步。 XLockDisplay 应该“锁定所有其他线程”不使用显示,但这是否适用于多个进程?

    另外,是否所有流程都需要调用 XInitThreads 或者只是打电话的人 XLockDisplay ?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Valery S.    6 年前

    XLockDisplay func(和LockDisplay宏)必须在同一个XClient应用程序中使用,即进程。。。它们对btw XClient(所以btw 2进程)毫无意义。这是一种防止多个线程(在同一进程内)试图访问同一个X连接的方法(如参见GLX-1.4,第2.7章)

    为了读取另一个窗口的全部内容(缓冲区),您可以查看从桌面或单个窗口生成屏幕截图的任何应用程序(例如,请参阅“scrot”源代码)。

    如果您想交换btw XClient的数据,请使用它们的属性/原子(请参阅XLib ICCC)。