Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Xflush Alternative gesucht

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
grisu1972



Anmeldungsdatum: 22.07.2008
Beiträge: 16

BeitragVerfasst am: 15. Aug 2008 7:50   Titel: Xflush Alternative gesucht

Hallo Leute,

ich habe bis jetzt immer ein XFlush(display); benutzt um eine XLib Aktion wie XSendEvent (display, tmpWin, False, 0L, &xev) abzuschließen!
Das finde ich eigentlich etwas hart, gibt es eine bessere Methode?

Grüsse Carsten
 
Benutzer-Profile anzeigen Private Nachricht senden

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 15. Aug 2008 9:56   Titel:

XFlush() sendet alle Client-Anforderungen in einem Rutsch vom Client zum Server, um die Zahl der Requests zu verringern. Genau dafür ist das gemacht. Was ist daran bitte "hart"?

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

grisu1972



Anmeldungsdatum: 22.07.2008
Beiträge: 16

BeitragVerfasst am: 15. Aug 2008 14:27   Titel:

Genau darin besteht mein "Problem"!
Wenn ich asynchron etwas an den XServer schicken möchte wird alles geschickt was zuvor zusammengebaut wurde.
Bsp.
Es soll etwas anzeigt werden, zwischendurch wird ein signal empfangen!
Das signal wird abgearbeitet und sendet etwas an den XServer, damit der XServer das sofort erhält wird ein xflush() aufgerufen(!). Dann würde das, was zuvor vorbereitet wurde auch gleich gesendet! Nach der Abarbeitung würde die Applikation die Anzeige weiter abarbeiten!
Mir ist einfach unklar, was für Auswirkungen dieses asynchrone bearbeiten des Signals verursachen kann! Ich gehe davon aus das es nicht unproblematisch ist, weiss aber auch nicht wie ich dem entgegenwirkenn könnte!

In meinem Verständnis ist dies in der Realisierung der XtAppMainLoop zu suchen, wenn ein Signal asynchron abgearbeitet wird kann es halt die Methode in der sich die Mainloop befindet unterbrechen!
Das ist doch so, oder habe ich das falsch verstanden?
 
Benutzer-Profile anzeigen Private Nachricht senden

Janka



Anmeldungsdatum: 11.02.2006
Beiträge: 3569

BeitragVerfasst am: 15. Aug 2008 19:42   Titel:

Du kannst die Requestqueue zum XServer übertragen, so oft du willst. Es gibt keine Transaktionssemantik, das heißt: Dem Xserver ist es egal, welche Requests innerhalb eines Request-Blocks zusammengefasst sind, die werden auf der Empfangsseite sowieso einfach wieder in eine Queue eingetütet.

Wenn du in deinem Programmablauf eine bestimmte Reihenfolge der Event-Bearbeitung erzwingen musst, musst du jeweils einen "Round-Trip" erzeugen, das heißt, die Event-Verarbeitungsroutine erzeugt wieder einen neuen Event für den nächsten Schritt. Damit ist die Reihenfolge dann festgenagelt.

Das fehlen der Transaktionen ist auch ein Grund dafür, dass X in solchen Abläufen sehr langsam sein kann. Am besten vermeidet man Abläufe mit fester Reihenfolge.

Janka
_________________
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy