XWindow ignoriert mehrere ClentMessage die während derselben Sekunde gesendet

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

  •  09-06-2019
  •  | 
  •  

Frage

Ich habe ein interessantes Problem aufgetreten, während für unser Vermächtnis XWindows Anwendung zu entwickeln.

Aus Gründen, die tragen nicht erklären, ich sende ClientMessage von einem comand Zeilenprogramm zu einer GUI app.Most der Nachrichten mit dem gleichen Inhalt am Ende, wie die Zweck der Nachricht ist ein synchronen Kommunikationsprozess über auslösen einige Nebenrohren. Ich habe, dass einige der Zeit bemerkte ich zwei Nachrichten senden würde, aber nur bekommt man geliefert. Ich habe dies auf die Tatsache zurückzuführen, dass beide Nachrichten den gleichen Inhalt hatten und wurde in dem gleichen Sekunde gesendet (IOW, das Protokoll Zeitstempel auf der Sende war die gleiche Zahl). Sobald ich einige Dummy-Inhalte zu den Nachrichten hinzugefügt, sie alle verschieden zu machen, das Problem ging weg.

Dies geschah über zwei verschiedenen X-Server: vncserver und Exceed. Bin ich schlagen einige XWindows Feature, dass ich bin mir nicht bewusst - eine Art von Nachricht Drosselung / Kompression? Hat jemand diese Art der Sache gestoßen?

War es hilfreich?

Lösung

Der X-Server sollte nie Client-Nachrichten komprimiert, dass mir bewusst bin, aber vielleicht einig X-Toolkits (Motiv, Xaw, etc.) sie komprimiert. Das ist das erste, was ich für aussehen würde -. Vielleicht die GUI-Anwendung die Nachricht empfangen wird komprimiert irgendwo innerhalb des Toolkits, bevor der Anwendungscode sieht es

Dann wieder, beide vncserver und überschreiten wahrscheinlich mehr auf Remote-Nutzung als andere X-Server konzentrieren, und sie konnten einige schlecht beraten Kompression Hacks enthalten, denkbar. Ich habe eine Menge von X-Spezifikationen lesen und eine Menge von X-Code geschrieben und nie obwohl dieses Verhalten gehört.

Eine zufällige unwahrscheinlich Gedanken, sollten Sie eine XFlush haben () oder XSync () am Ende Ihrer App Kommandozeile, bevor sie beendet wird, um sicherzustellen, dass Sie diese Nachrichten aus, um den Sockel vor dem Schließen aufschreiben. Aber ich weiß nicht, warum Nachrichteninhalt wäre egal, ob dies das Problem ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top