Et bien avec Xlib, le truc pas top, c'est que c'est le programmeur lui-meme qui doit gerer le multithreading pour pallier ce probleme. Alors que XCB etant asynchrone, je pense que la seule maniere de gerer ca correctement est de laisser la librairie gerer ca.
En fait la XLib n'ets pas capable de gerer plusieurs instances de certains paramètres. Par exemple les propriétés d'une fenêtre ne peutvent exister qu'en un seul exemplaire, XGetWindowsProperties va donc entrainner un blocage de toutes les requètes qui ont besoin des propriétés d'une fenêtre ou des fenêtres racines. Celà implique que si on fait une requête sur la fenêtre racine, plus aucune requête de propriété sur les fenêtres ne peut avoir lieu. L'ensemble des applications est bel est bien bloqué jusqu'à ce que la XLib est finit de parser les propriétés et d'agir en conséquence.
Par contre la mauvaise nouvelle est que sous XCB une grosse partie de la synchro et de la gestion des threads est encore faite a la main. Les cookies doivent être allouées et traités par le dev lui même.
Plus ou moins. En fait, utiliser XCL permet de remplacer XLib par la meme interface (les signatures de fonctions sont identiques).
En fait XCL n'existe plus vraiment, il s'agit désormais d'une version modifiée de la XLib pour laquelle XCB fait un peu effet de proxy. Il est ainsi possible de passer outre les problèmes vu plus haut.
[^] # Re: Pont
Posté par Jerome Herman . En réponse à la dépêche XCB : bientôt la version 1. Évalué à 4.
En fait la XLib n'ets pas capable de gerer plusieurs instances de certains paramètres. Par exemple les propriétés d'une fenêtre ne peutvent exister qu'en un seul exemplaire, XGetWindowsProperties va donc entrainner un blocage de toutes les requètes qui ont besoin des propriétés d'une fenêtre ou des fenêtres racines. Celà implique que si on fait une requête sur la fenêtre racine, plus aucune requête de propriété sur les fenêtres ne peut avoir lieu. L'ensemble des applications est bel est bien bloqué jusqu'à ce que la XLib est finit de parser les propriétés et d'agir en conséquence.
Par contre la mauvaise nouvelle est que sous XCB une grosse partie de la synchro et de la gestion des threads est encore faite a la main. Les cookies doivent être allouées et traités par le dev lui même.
Plus ou moins. En fait, utiliser XCL permet de remplacer XLib par la meme interface (les signatures de fonctions sont identiques).
En fait XCL n'existe plus vraiment, il s'agit désormais d'une version modifiée de la XLib pour laquelle XCB fait un peu effet de proxy. Il est ainsi possible de passer outre les problèmes vu plus haut.
Kha