version 1.27, 2010/08/31 09:51:30
|
version 1.30, 2010/12/12 14:13:39
|
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 226 instruction_wait(struct_processus *s_eta
|
Line 226 instruction_wait(struct_processus *s_eta
|
return; |
return; |
} |
} |
|
|
if (((*s_objet).type == INT) || |
if (((*s_objet).type == INT) || ((*s_objet).type == REL)) |
((*s_objet).type == REL)) |
|
{ |
{ |
if ((*s_objet).type == INT) |
if ((*s_objet).type == INT) |
{ |
{ |
Line 279 instruction_wait(struct_processus *s_eta
|
Line 278 instruction_wait(struct_processus *s_eta
|
code_retour = nanosleep(&temporisation, &temporisation); |
code_retour = nanosleep(&temporisation, &temporisation); |
erreur = errno; |
erreur = errno; |
|
|
scrutation_injection(s_etat_processus); |
|
|
|
if ((*s_etat_processus).nombre_interruptions_non_affectees != 0) |
|
{ |
|
affectation_interruptions_logicielles(s_etat_processus); |
|
} |
|
|
|
if ((*s_etat_processus).nombre_interruptions_en_queue != 0) |
|
{ |
|
traitement_interruptions_logicielles(s_etat_processus); |
|
} |
|
|
|
# ifndef SEMAPHORES_NOMMES |
# ifndef SEMAPHORES_NOMMES |
while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1) |
while(sem_wait(&((*s_etat_processus).semaphore_fork)) == -1) |
# else |
# else |
Line 303 instruction_wait(struct_processus *s_eta
|
Line 290 instruction_wait(struct_processus *s_eta
|
return; |
return; |
} |
} |
} |
} |
|
|
|
scrutation_injection(s_etat_processus); |
|
|
|
if ((*s_etat_processus).nombre_interruptions_non_affectees != 0) |
|
{ |
|
affectation_interruptions_logicielles(s_etat_processus); |
|
} |
|
|
|
if ((*s_etat_processus).nombre_interruptions_en_queue != 0) |
|
{ |
|
traitement_interruptions_logicielles(s_etat_processus); |
|
} |
} while(((code_retour == -1) && (erreur == EINTR)) |
} while(((code_retour == -1) && (erreur == EINTR)) |
&& ((*s_etat_processus).var_volatile_requete_arret == 0)); |
&& ((*s_etat_processus).var_volatile_requete_arret == 0)); |
|
|