Diff for /rpl/src/instructions_d5.c between versions 1.146 and 1.151

version 1.146, 2016/03/17 16:31:58 version 1.151, 2016/04/06 21:14:56
Line 1288  instruction_detach(struct_processus *s_e Line 1288  instruction_detach(struct_processus *s_e
          * Processus fils           * Processus fils
          */           */
   
           // EPERM
         pthread_mutex_destroy(&mutex_liste_variables_partagees);          pthread_mutex_destroy(&mutex_liste_variables_partagees);
         pthread_mutex_destroy(&mutex_liste_threads);          pthread_mutex_destroy(&mutex_liste_threads);
   
Line 1304  instruction_detach(struct_processus *s_e Line 1305  instruction_detach(struct_processus *s_e
         liberation_queue_signaux(s_etat_processus);          liberation_queue_signaux(s_etat_processus);
         creation_queue_signaux(s_etat_processus);          creation_queue_signaux(s_etat_processus);
   
         if (lancement_thread_signaux(s_etat_processus) != d_absence_erreur)  
         {  
             (*s_etat_processus).erreur_systeme = d_es_processus;  
         }  
   
         routine_recursive = 0;          routine_recursive = 0;
           nombre_thread_surveillance_processus = 0;
   
         (*s_etat_processus).pointeur_signal_lecture = 0;          (*s_etat_processus).pointeur_signal_lecture = 0;
         (*s_etat_processus).pointeur_signal_ecriture = 0;          (*s_etat_processus).pointeur_signal_ecriture = 0;
Line 2809  instruction_detach(struct_processus *s_e Line 2806  instruction_detach(struct_processus *s_e
             liberation_profil(s_etat_processus);              liberation_profil(s_etat_processus);
         }          }
   
         closelog();          attente.tv_sec = 0;
           attente.tv_nsec = GRANULARITE_us * 1000;
   
         close((*s_argument_thread).pipe_erreurs[1]);          while(nombre_thread_surveillance_processus != 0)
         close((*s_argument_thread).pipe_interruptions[1]);          {
         close((*s_argument_thread).pipe_nombre_elements_attente[1]);              nanosleep(&attente, NULL);
         close((*s_argument_thread).pipe_objets[1]);              INCR_GRANULARITE(attente.tv_nsec);
         close((*s_argument_thread).pipe_injections[0]);          }
         close((*s_argument_thread).pipe_nombre_injections[0]);  
         close((*s_argument_thread).pipe_acquittement[0]);          closelog();
   
         retrait_thread(s_etat_processus);          retrait_thread(s_etat_processus);
           liberation_contexte_cas(s_etat_processus);
           destruction_queue_signaux(s_etat_processus);
   
 #       ifndef SEMAPHORES_NOMMES  #       ifndef SEMAPHORES_NOMMES
         sem_post(&((*s_etat_processus).semaphore_fork));          sem_post(&((*s_etat_processus).semaphore_fork));
Line 2832  instruction_detach(struct_processus *s_e Line 2832  instruction_detach(struct_processus *s_e
   
         clear_history();          clear_history();
   
         liberation_contexte_cas(s_etat_processus);          close((*s_argument_thread).pipe_erreurs[1]);
         destruction_queue_signaux(s_etat_processus);          close((*s_argument_thread).pipe_interruptions[1]);
           close((*s_argument_thread).pipe_nombre_elements_attente[1]);
           close((*s_argument_thread).pipe_objets[1]);
           close((*s_argument_thread).pipe_injections[0]);
           close((*s_argument_thread).pipe_nombre_injections[0]);
           close((*s_argument_thread).pipe_acquittement[0]);
   
         free((*s_etat_processus).localisation);          free((*s_etat_processus).localisation);
         free((*s_etat_processus).chemin_fichiers_temporaires);          free((*s_etat_processus).chemin_fichiers_temporaires);
Line 2849  instruction_detach(struct_processus *s_e Line 2854  instruction_detach(struct_processus *s_e
         pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes));          pthread_mutex_destroy(&((*s_etat_processus).protection_liste_mutexes));
         pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation_buffer));          pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation_buffer));
         pthread_mutex_destroy(&mutex_sections_critiques);          pthread_mutex_destroy(&mutex_sections_critiques);
           pthread_mutex_destroy(&mutex_liste_variables_partagees);
           pthread_mutex_destroy(&mutex_liste_threads);
   
         sys_free(s_etat_processus);          sys_free(s_etat_processus);
   

Removed from v.1.146  
changed lines
  Added in v.1.151


CVSweb interface <joel.bertrand@systella.fr>