Diff for /rpl/src/instructions_d5.c between versions 1.144 and 1.152

version 1.144, 2016/03/16 12:19:34 version 1.152, 2016/07/20 16:24:29
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]);
         liberation_allocateur(s_etat_processus);          close((*s_argument_thread).pipe_objets[1]);
         liberation_allocateur_buffer(s_etat_processus);          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);
         free(s_argument_thread);          free(s_argument_thread);
   
           liberation_allocateur(s_etat_processus);
           liberation_allocateur_buffer(s_etat_processus);
   
         pthread_mutex_destroy(&((*s_etat_processus).mutex_pile_processus));          pthread_mutex_destroy(&((*s_etat_processus).mutex_pile_processus));
         pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation));          pthread_mutex_destroy(&((*s_etat_processus).mutex_allocation));
         pthread_mutex_destroy(&((*s_etat_processus).mutex_interruptions));          pthread_mutex_destroy(&((*s_etat_processus).mutex_interruptions));
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.144  
changed lines
  Added in v.1.152


CVSweb interface <joel.bertrand@systella.fr>