XWindow ignora múltiples ClentMessage enviados durante el mismo segundo

StackOverflow https://stackoverflow.com/questions/66111

  •  09-06-2019
  •  | 
  •  

Pregunta

Me he encontrado con un problema interesante, mientras que el desarrollo de nuestro legado XWindows aplicación.

Por razones que no son portadores de explicar, estoy enviando ClientMessage de un comando de la utilidad de línea de una interfaz gráfica de usuario de la aplicación.La mayoría de los mensajes que acabe teniendo el mismo contenido, ya que el mensaje tiene el propósito de desencadenar un proceso de comunicación sincrónica a través de algunas de lado de los tubos.Me he dado cuenta de que algunos de el tiempo que me gustaría enviar dos mensajes, pero sólo uno se entrega.Yo he trazado esto al hecho de que tanto los mensajes tienen el mismo contenido y fueron enviados en el mismo segundo (IOW, el registro de la marca de tiempo del envío es el mismo número).Tan pronto como he añadido algunos ficticia de los contenidos a los mensajes para que sean todos diferentes, el problema desapareció.

Esto sucedió en dos diferentes servidores de X:vncserver y Superar.Estoy de golpear a algunos XWindows característica de que yo no soy consciente de que algún tipo de limitación de mensajes/compresión?Alguien ha encontrado con este tipo de cosas?

¿Fue útil?

Solución

El servidor X nunca debe comprimir los mensajes del cliente, que yo sepa, pero tal vez algunos X kits de herramientas (el Motivo, Xaw, etc.) hacer comprimirlos.Esa es la primera cosa que me gustaría ver - tal vez la interfaz gráfica de usuario de la aplicación que recibe el mensaje, es la compresión de algún lugar en el interior de la caja de herramientas, antes de que el código de la aplicación se ve.

A continuación, de nuevo, tanto vncserver y superar probable que se concentre más en el uso remoto de otros servidores X, y podían contener la inconveniencia de compresión de hacks, posiblemente.He leído un montón de X especificaciones y escrito mucho de X código y nunca había oído hablar de este comportamiento.

Un azar raro pensamiento, asegúrese de que tiene un XFlush() o XSync() al final de la línea de comandos de la aplicación antes de que salga, para asegurarse de que escribir los mensajes a la toma de corriente antes de cerrar.Pero no sé por qué mensaje contenido importa si este es el problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top