version 1.42, 2010/09/11 16:46:19
|
version 1.45, 2010/12/14 15:46:24
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.0.19 |
RPL/2 (R) version 4.0.20 |
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 2862 instruction_detach(struct_processus *s_e
|
Line 2862 instruction_detach(struct_processus *s_e
|
liberation(s_etat_processus, s_objet); |
liberation(s_etat_processus, s_objet); |
|
|
# if !defined(Cygwin) && !defined(OpenBSD) |
# if !defined(Cygwin) && !defined(OpenBSD) |
(*s_etat_processus).pile_signal.ss_flags = SS_DISABLE; |
do |
sigaltstack(&((*s_etat_processus).pile_signal), NULL); |
{ |
|
(*s_etat_processus).pile_signal.ss_flags = SS_DISABLE; |
|
} |
|
while(sigaltstack(&((*s_etat_processus).pile_signal), NULL) != 0); |
free((*s_etat_processus).pile_signal.ss_sp); |
free((*s_etat_processus).pile_signal.ss_sp); |
# endif |
# endif |
|
|
Line 3021 instruction_detach(struct_processus *s_e
|
Line 3024 instruction_detach(struct_processus *s_e
|
|
|
// Être sûr que le processus fils soit déjà présent... |
// Être sûr que le processus fils soit déjà présent... |
|
|
|
attente.tv_sec = 0; |
|
attente.tv_nsec = GRANULARITE_us * 1000; |
|
|
while(kill((*s_argument_thread).pid, 0) != 0) |
while(kill((*s_argument_thread).pid, 0) != 0) |
{ |
{ |
//if ((errno != ESRCH) && (errno != EAGAIN)) |
//if ((errno != ESRCH) && (errno != EAGAIN)) |
Line 3032 instruction_detach(struct_processus *s_e
|
Line 3038 instruction_detach(struct_processus *s_e
|
} |
} |
|
|
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
|
INCR_GRANULARITE(attente.tv_nsec); |
} |
} |
|
|
// Le fils peut être présent sans être en attente du signal de départ. |
// Le fils peut être présent sans être en attente du signal de départ. |