Thread safe

Vous savez que j’ai publié un livre moi ?

Il s’est même plutôt vachement bien vendu quand on regarde le public visé; à savoir - le petit cercle des programmeurs Borland (pour quelques temps encore) Delphi.

Bon c’est pas aussi sympa à lire que le Seigneur des Anneaux, ou même de Bilbo le Hobbit dont je fais la lecture à mes enfants pour changer des sempiternels comptes de Perrault et autres Andersen…à ne pas confondre avec Anderson de Matrix, même si Mr Smith est un Elf déguisé en méchant (ou l’inverse).

Or donc, développeur de la première heure de ce qu’on appelle aujourd’hui le “Delphi Langage” pour ne pas confondre avec les fraises des bois, j’ai la prétention de bien connaître le sujet.

Et bien voila qu’il m’a fallut deux jours, deux longs jours…enfin de longues soirées, voir des nuits, car comme tout programmeur qui se respecte, je suis productif entre 23h et 4h du mat…il m’a fallut donc tout ce temps à lire et relire mon code, à ajouter des tests de cohérence, et faire du mode pas à pas…pour trouver pourquoi mon programme plantait aléatoirement.

Le côté sympa de l’histoire, c’est que ce n’est pas de ma faute :D Enfin si, un peu, car j’ai une méchante tendance à toujours vouloir réinventer la roue…et quand on fait une belle roue bien ronde, mais qu’on l’accroche pas là où il faut…ben ça roule pas.

La morale de cette histoire, est qu’après 15 ans de Delphi Langage, je découvre l’utilité d’une variable dont je ne m’étais jamais soucié : IsMultiThread. Il faut dire qu’elle ne paye pas de mine cette variable décrite comme cela : Indicates whether the application spawned additional threads using BeginThread or TThread objects.

En fait, c’est cette page Writing Clean and Safe UDFs In Delphi qui a mis le doigt sur mon problème (merci à Google de ma l’avoir trouvée).

Quand on fait du multi-threading (multi-tâches) sous Delphi sans utiliser BeginThread ni l’objet TThread livré avec, ben faut l’indiquer par la variable IsMultiThread sous peine de passer deux nuits à cherche des bugs là où y’en a pas :D

Paul, qui dormira moins con ce soir.

Les commentaires sont fermés.