Aller au contenu

« Réunion du 21-10-2025 » : différence entre les versions

De OSWiki
Ligne 18 : Ligne 18 :


=== Discussion ===
=== 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. Il va devoir voir cela, car '''le nouveau code  maptile''' utilise '''Thread.Abort'''  en cas de blocage.  
* 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.
* Ubit Umarov dit qu'OpenSim utilise '''Thread.Abort'''  seulement avec [https://fr.wikipedia.org/wiki/Chien_de_garde_(informatique) '''Watchdog'''] pour tuer les threads expirés.
* 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 [https://fr.wikipedia.org/wiki/Chien_de_garde_(informatique) '''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 [https://www.codeproject.com/articles/Smart-Thread-Pool#comments-section '''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 =
= Avertissement =

Version du 27 janvier 2026 à 13:20

Changements du code de la semaine

Modification à l'utilisation de la classe ReaderWriterLockSlim

Commits

NDLR  :
  • ReaderWriterLockSlim est une classe en C# qui permet à plusieurs threads de lire simultanément une ressource tout en garantissant qu'un seul thread à la fois peut y écrire.
  • La méthode Thread.Abort est utilisée pour terminer un thread en C#, mais elle est désormais considérée comme obsolète et son utilisation n'est pas recommandée dans les versions modernes de Lexique_des_réunions#dotnet '''.NET'''.


  • 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