Plusieurs fois dans les articles précédents, il était mentionné l’utilisation de la librairie Ecore/Evas pour le simulateur. Mais les circonstances en ont finalement décidé autrement. Le simulateur étant une application multi-threads ainsi qu’une librairie, deux problèmes surviennent lors de l’utilisation d’Ecore. Tout d’abord, il n’y a pas de fonction main, ainsi la fonction bloquante de “loop” permettant de gérer les événements dont ceux des timers, doit être intégrée à un thread. Mais Ecore n’étant pas complètement thread-safe et re-entrant, des comportements étranges peuvent apparaîtres.
Si vous êtes intéressé par Ecore, je vous invite à télécharger ce petit exemple : www.geexbox.org/~schroeterm/buggy_timer.c que vous pouvez compiler simplement en spécifiant -lecore et -lpthread au linker. Afin de se rendre compte des problèmes, décommentez et commentez les lignes 53 et 54. La sortie console parlera d’elle-même.
Après une petite discussion avec les développeurs d’Evas, le simulateur utilisera donc la fameuse librairie SDL dont la robustesse n’est plus à prouver.
site web : www.libsdl.org
Team programmation