Diff for /rpl/src/interruptions.c between versions 1.20 and 1.27

version 1.20, 2010/06/04 07:48:20 version 1.27, 2010/08/06 15:26:50
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.0.16    RPL/2 (R) version 4.0.18
   Copyright (C) 1989-2010 Dr. BERTRAND Joël    Copyright (C) 1989-2010 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
Line 20 Line 20
 */  */
   
   
 #include "rpl.conv.h"  #include "rpl-conv.h"
   
   
 /*  /*
Line 125  insertion_thread(struct_processus *s_eta Line 125  insertion_thread(struct_processus *s_eta
     }      }
   
     (*l_nouvel_objet).suivant = liste_threads;      (*l_nouvel_objet).suivant = liste_threads;
   
     liste_threads = l_nouvel_objet;      liste_threads = l_nouvel_objet;
   
 #   ifndef SEMAPHORES_NOMMES  #   ifndef SEMAPHORES_NOMMES
Line 184  insertion_thread_surveillance(struct_pro Line 183  insertion_thread_surveillance(struct_pro
         }          }
     }      }
   
 printf("<1> +1 %d\n", (*s_argument_thread).nombre_references);      pthread_mutex_lock(&((*s_argument_thread).mutex));
       (*s_argument_thread).nombre_references++;
       pthread_mutex_unlock(&((*s_argument_thread).mutex));
   
     (*l_nouvel_objet).suivant = liste_threads_surveillance;      (*l_nouvel_objet).suivant = liste_threads_surveillance;
     (*l_nouvel_objet).donnee = (void *) s_argument_thread;      (*l_nouvel_objet).donnee = (void *) s_argument_thread;
   
Line 391  retrait_thread_surveillance(struct_proce Line 393  retrait_thread_surveillance(struct_proce
     }      }
   
     (*s_argument_thread).nombre_references--;      (*s_argument_thread).nombre_references--;
 printf("<3> -1 %d %p\n", (*s_argument_thread).nombre_references, s_argument_thread);  
   
     BUG((*s_argument_thread).nombre_references < 0,      BUG((*s_argument_thread).nombre_references < 0,
             printf("(*s_argument_thread).nombre_references = %d\n",              printf("(*s_argument_thread).nombre_references = %d\n",
             (int) (*s_argument_thread).nombre_references));              (int) (*s_argument_thread).nombre_references));
   
 printf("retrait_thread_surveillance : %d\n", (*s_argument_thread).nombre_references);  
     if ((*s_argument_thread).nombre_references == 0)      if ((*s_argument_thread).nombre_references == 0)
     {      {
         if (pthread_mutex_unlock(&((*s_argument_thread).mutex)) != 0)          if (pthread_mutex_unlock(&((*s_argument_thread).mutex)) != 0)
Line 684  liberation_threads(struct_processus *s_e Line 684  liberation_threads(struct_processus *s_e
                 }                  }
   
                 (*s_argument_thread).nombre_references--;                  (*s_argument_thread).nombre_references--;
 printf("<1> -1 %d %p\n", (*s_argument_thread).nombre_references, s_argument_thread);  
   
                 BUG((*s_argument_thread).nombre_references < 0,                  BUG((*s_argument_thread).nombre_references < 0,
                         printf("(*s_argument_thread).nombre_references = %d\n",                          printf("(*s_argument_thread).nombre_references = %d\n",
Line 1359  printf("<1> -1 %d %p\n", (*s_argument_th Line 1358  printf("<1> -1 %d %p\n", (*s_argument_th
         }          }
   
         (*s_argument_thread).nombre_references--;          (*s_argument_thread).nombre_references--;
 printf("<2> -1 %d %p\n", (*s_argument_thread).nombre_references, s_argument_thread);  
   
         BUG((*s_argument_thread).nombre_references < 0,          BUG((*s_argument_thread).nombre_references < 0,
                 printf("(*s_argument_thread).nombre_references = %d\n",                  printf("(*s_argument_thread).nombre_references = %d\n",

Removed from v.1.20  
changed lines
  Added in v.1.27


CVSweb interface <joel.bertrand@systella.fr>