http://www.pronix.de -> Bücher -> Bücher aus meiner Feder -> Linux-Unix-Programmierung -> Extra Kapitel: X Window-Programmierung -> Architektur von X -> Pufferung

Pufferung

Wenn eine Anwendung eine Anfrage an den X-Server stellt, dann wird diese via X-Protokoll übertragen. Auch hier folgt der Datenaustausch, wie in einem Netzwerkbetrieb üblich, gepuffert. Die Daten werden dabei in kleine Päckchen gepackt und über das Netzwerk verschickt. Da eine einzelne Anfrage ein solches Päckchen selten ganz füllt, werden diese in einem Puffer gespeichert und erst dann verschickt, wenn dieser voll ist. Durch diese Vorgehensweise wird die Geschwindigkeit der Anwendung enorm erhöht. Dennoch gibt es drei Möglichkeiten, wann ein Päckchen verschickt werden kann, obwohl der Puffer noch nicht voll ist:

  • Die Anwendung wartet auf ein Ereignis und es ist kein passendes in der Warteschlange - dieser Fall tritt am häufigsten auf.
  • Ein Round-Trip-Request verlangt sofort eine Antwort vom Server. Bei Funktionen, die ein Round-Trip-Request fordern, befinden sich meistens die Teilworte Query, Fetch oder Get in der Syntax.
  • Der Client (also Sie mit Ihrer Applikation) entleert den Puffer selbst manuell, wenn z. B. kein Benutzer-Event und auch keine Anfrage an den Server erwartet wird.