XC-MISC
Plus d'infos
- Créateur
- X Consortium
- Année
- 1994
- Type
- Extension X
La petite extension de X11R6 qui permet à un client de demander au serveur quels identifiants de ressources sont redevenus libres, pour qu'un programme actif pendant des semaines ne manque jamais de numéros.
Un client X invente lui-même les identifiants de ses fenêtres, pixmaps et curseurs, en puisant dans une plage attribuée à la connexion. Cela économise un aller-retour par objet créé, mais impose un plafond intégré : la plage contient typiquement quelques millions de valeurs, et Xlib ne faisait que compter vers le haut. Arrivée au sommet, la bibliothèque affichait « resource ID allocation space exhausted » et terminait le programme, alors que presque tous les anciens identifiants avaient été libérés depuis longtemps. Les terminaux et navigateurs qui créaient et détruisaient des pixmaps par milliers pouvaient y arriver au cours d'une longue session.
XC-MISC, où XC signifie X Consortium, est arrivée avec X11R6 en 1994, aux côtés de BIG-REQUESTS, tout aussi peu glamour. Elle comporte trois requêtes : GetVersion, GetXIDRange, qui renvoie un intervalle libre contigu, et GetXIDList, qui renvoie jusqu'à un nombre demandé d'identifiants libres sous forme de liste. Xlib les appelle automatiquement quand sa propre plage est épuisée, et XCB fait de même dans xcb_generate_id, de sorte qu'aucun programmeur ne voit jamais l'extension, sinon comme une ligne dans xdpyinfo. Sort honorable pour une extension dont le seul travail est de rafistoler un choix de conception de 1987.