--- rpl/src/instructions_d5.c 2011/09/20 15:45:53 1.73 +++ rpl/src/instructions_d5.c 2011/11/18 20:24:40 1.78 @@ -1,6 +1,6 @@ /* ================================================================================ - RPL/2 (R) version 4.1.3 + RPL/2 (R) version 4.1.4 Copyright (C) 1989-2011 Dr. BERTRAND Joël This file is part of RPL/2. @@ -817,7 +817,6 @@ instruction_detach(struct_processus *s_e int pipe_initialisation_segment_signaux[2]; logical1 drapeau; - logical1 variable_partagee; pid_t ppid; pid_t pid_final; @@ -856,6 +855,8 @@ instruction_detach(struct_processus *s_e unsigned long i; + volatile logical1 variable_partagee; + (*s_etat_processus).erreur_execution = d_ex; attente.tv_sec = 0; @@ -1231,28 +1232,30 @@ instruction_detach(struct_processus *s_e return; } -# ifndef OS2 -# ifndef Cygwin +# ifdef SCHED_OTHER if (pthread_attr_setschedpolicy(&attributs, SCHED_OTHER) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; } +# endif +# ifdef PTHREAD_EXPLICIT_SCHED if (pthread_attr_setinheritsched(&attributs, PTHREAD_EXPLICIT_SCHED) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; } +# endif +# ifdef PTHREAD_SCOPE_SYSTEM if (pthread_attr_setscope(&attributs, PTHREAD_SCOPE_SYSTEM) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; } # endif -# endif (*s_argument_thread).s_etat_processus = s_etat_processus; @@ -1277,6 +1280,7 @@ instruction_detach(struct_processus *s_e liberation_queue_signaux(s_etat_processus); creation_queue_signaux(s_etat_processus); + routine_recursive = 0; (*s_etat_processus).pointeur_signal_lecture = 0; (*s_etat_processus).pointeur_signal_ecriture = 0;