Réunion du 21-10-2025
Apparence
Changements du code de la semaine
Modification à l'utilisation de la classe ReaderWriterLockSlim
Commits
- Commit d6c83a : Simplifier DoubleDictionaryThreadAbortSafe car Lexique_des_réunions#dotnet '''.NET''' n'a plus Thread.Abort. Le nom n'est pas incorrect, mais je le garde pour l'instant.
- Commit c69eca : Plus sur ReaderWriterLockSlim et thread.abort.
NDLR :
|
- Ubit Umarov a apporté une petite modification à l'utilisation de ReaderWriterLockSlim.
Fonctionnement de l'ancien code
- Lorsqu'un thread était abandonné à l'aide de Thread.Abort et qu'il avait acquis un verrou, il risquait d'être interrompu avant que le verrou ne soit libéré.
- Dans ce cas, d'autres threads partageant les mêmes ressources et tentant d'y accéder étaient parfois (dans de rares cas) bloqués indéfiniment. Cela pouvait conduire à une situation où le programme se figeait ou ne répondait plus.
- Pour éviter cela, le code marquait le verrou avec un flag et incluait une routine dans un bloc try, qui s'assurait que, même si un thread devait être abandonné, il exécutait un bloc de code qui libérait le verrou.
Modification apportée
- Comme .NET n'a plus thread.abort, Ubit Umarov a supprimé ce code de protection.
Discussion
- Vincent Sylvester pense que ne pas avoir la possibilité de tuer un thread bloqué semble régressif. Tuer des threads comme ça n'est pas génial, mais avoir du code bloqué l'est encore moins. D'après lui, supprimer des éléments pour éviter les erreurs n'est pas une bonne solution. Il va devoir voir cela, car le nouveau code maptile utilise Thread.Abort en cas de blocage.
- Le développeur est censé écrire du code qui ne casse pas dès le départ, mais beaucoup de choses dépendent de dépendances externes qui sont hors de son contrôle. Alors, oui, c'est une solution de dernier recours, mais c'est une solution.
- Ubit Umarov pense que l'abandon des threads est une mauvaise chose. Tout d'abord, Thread.Abort provoquait de nombreuses alertes et avertissements. Ensuite, le code de Framework.NET n'est pas conçu pour gérer correctement les abandons de thread avec des conséquences graves comme lorsque des ressources ne sont pas libérées.
- Il dit qu'OpenSim utilise Thread.Abort seulement avec Watchdog pour tuer les threads expirés.
- La seule façon de tuer un thread maintenant est de lui demander de se fermer, ou à la sortie du programme. Mais l'abandon de thread est mauvais dans tous les cas, c'est une solution de dernier recours.
- L'utilisation de Thread.Abort pourrait passer avec le pool smartthread, mais ça peut être assez mauvais avec le pool du framework ou les tâches asynchrones.
- Ubit Umarov dit que ces problèmes sont une raison de ne pas utiliser dotnet sur des projets sérieux.
Avertissement
| Attention : Ce résumé existe pour orienter vos recherches. Des erreurs d'interprétation ne sont pas à exclure. Pour plus de précisions, veuillez vous référer aux sources ou vous adresser directement aux développeurs d'OpenSimulator en assistant aux réunions du mardi ou sur le canal IRC. Je ne fais pas partie des développeurs, ne vous adressez pas à moi pour les joindre. Merci.😉 |
Base de données
Problèmes des connecteurs de base de données
- 🏗️
Tests
Test de régression
Le test
- Cuga Rajal a fait un test de régression avec les dernières versions de Dotnet 8 et Opensim à partir du tronc pour voir quelles versions de macOS fonctionnent encore.
Résultat
- Tout fonctionne toujours sous macOS 10.15 (Cataliba) y compris les bibliothèques non gérées.
- La documentation de dotnet 8 ne mentionnait pas la compatibilité avec les versions antérieures de macOS, mais c'est la cas.
Informations
Architecture 32 bits
- 🏗️
Windows 10 et 11 et puce TPM
- 🏗️
Démarrage sécurisé et Linux
- 🏗️
Démarrage sécurisé et Apple
- 🏗️
OSCC 2025
- L'appel à propositions pour la conférence communautaire OpenSimulator est bientôt clôturé. Lyr Loboo fait un dernier appel à propositions.
- Elle a établi un calendrier provisoire qu'elle corrige avant de l'envoyer pour qu'il soit accepté.
Burning Man virtuel sur Second Life
- Cuga Rajal annonce que le Burning Man virtuel de Second Life a lieu cette semaine et ce week-end. Il dit que c'est l'une des rares choses auxquelles il participe sur Second Life.
Viewers
Dayturn
- La dernière mise à jour de Win10 a complètement détruit une installation test de Gavin Hird. Il a finalement renoncé à la réparer et à la réinstaller, les pilotes sont introuvables.
Source
https://opensimulator.org/wiki/Chat_log_from_the_meeting_on_2025-10-21