[SOS] Millésime 2006

David Decotigny david.decotigny at free.fr
Dim 1 Jan 18:08:41 CET 2006


Bonjour,

Comme une bonne annee n'arrive jamais seule, et réciproquement, voici le
premier mail SOS de l'annee pour vous annoncer un "petit" bug, le
premier millésimé 2006. "Petit" par la taille mais gros par son impact.

Une erreur se glisse donc dans le code de la synchronisation depuis le
début, qui risque d'amener sos_kmutex_lock() à échouer intempestivement
(detection erronee de la prise recursive d'un mutex). En attachement le
patch qui corrige le probleme. La page Bugs du site est à jour. Si ca
vous interesse, on peut donner quelques explications si les commentaires
ne suffisent pas.

Bonne année a toutes et a tous !

-- 
http://david.decotigny.free.fr/
-------------- section suivante --------------
diff -ruN /tmp/sos-code-article9/sos/ksynch.c ../sos-code-article9/sos/ksynch.c
--- /tmp/sos-code-article9/sos/ksynch.c	2005-12-28 11:44:57.000000000 +0100
+++ ../sos-code-article9/sos/ksynch.c	2006-01-01 17:48:09.000000000 +0100
@@ -223,10 +237,12 @@
        *   mutex->owner = thread_that_is_woken_up;
        * But the real Id of the next thread owning the mutex is not
        * that important. What is important here is that mutex->owner
-       * IS NOT NULL. Otherwise there will be a possibility for the
-       * thread woken up here to have the mutex stolen by a thread
-       * locking the mutex in the meantime.
+       * IS NOT NULL and does not correspond to any existing
+       * thread. Otherwise there will be a possibility for the thread
+       * woken up here to have the mutex stolen by a thread locking
+       * the mutex in the meantime.
        */
+      mutex->owner = 0x43;
       retval = sos_kwaitq_wakeup(& mutex->kwaitq, 1, SOS_OK);
     } 
  


Plus d'informations sur la liste de diffusion Sos