version 1.26, 2010/08/30 14:14:07
|
version 1.65, 2013/04/01 15:29:34
|
Line 1
|
Line 1
|
/* |
/* |
================================================================================ |
================================================================================ |
RPL/2 (R) version 4.0.19 |
RPL/2 (R) version 4.1.14 |
Copyright (C) 1989-2010 Dr. BERTRAND Joël |
Copyright (C) 1989-2013 Dr. BERTRAND Joël |
|
|
This file is part of RPL/2. |
This file is part of RPL/2. |
|
|
Line 40
|
Line 40
|
void * |
void * |
surveillance_processus(void *argument) |
surveillance_processus(void *argument) |
{ |
{ |
int iostat; |
|
int status; |
int status; |
|
|
integer8 nombre_donnees; |
integer8 nombre_donnees; |
Line 57 surveillance_processus(void *argument)
|
Line 56 surveillance_processus(void *argument)
|
|
|
pthread_t tid_candidat; |
pthread_t tid_candidat; |
|
|
sigset_t masque; |
ssize_t iostat; |
|
|
ssize_t longueur_ecriture; |
ssize_t longueur_ecriture; |
|
|
struct_descripteur_thread *s_argument_thread; |
struct_descripteur_thread *s_argument_thread; |
Line 72 surveillance_processus(void *argument)
|
Line 70 surveillance_processus(void *argument)
|
|
|
unsigned char caractere; |
unsigned char caractere; |
|
|
unsigned int tampon_erreur_execution; |
int tampon_erreur_execution; |
unsigned int tampon_erreur_systeme; |
int tampon_erreur_systeme; |
|
|
|
sigset_t set; |
|
|
sigemptyset(&masque); |
sigfillset(&set); |
sigaddset(&masque, SIGINJECT); |
pthread_sigmask(SIG_BLOCK, &set, NULL); |
sigaddset(&masque, SIGFSTOP); |
|
sigaddset(&masque, SIGFABORT); |
|
sigaddset(&masque, SIGURG); |
|
sigaddset(&masque, SIGALRM); |
|
sigaddset(&masque, SIGCONT); |
|
sigaddset(&masque, SIGINT); |
|
pthread_sigmask(SIG_BLOCK, &masque, NULL); |
|
|
|
s_argument_thread = argument; |
s_argument_thread = argument; |
s_etat_processus = (*s_argument_thread).s_etat_processus; |
s_etat_processus = (*s_argument_thread).s_etat_processus; |
Line 344 surveillance_processus(void *argument)
|
Line 337 surveillance_processus(void *argument)
|
d_es_processus; |
d_es_processus; |
} |
} |
|
|
pthread_kill((*s_argument_thread).thread_pere, |
envoi_signal_thread((*s_argument_thread).thread_pere, |
SIGINJECT); |
rpl_siginject); |
} |
} |
} |
} |
else |
else |
Line 530 surveillance_processus(void *argument)
|
Line 523 surveillance_processus(void *argument)
|
d_es_processus; |
d_es_processus; |
} |
} |
|
|
pthread_kill((*s_argument_thread).thread_pere, |
envoi_signal_thread((*s_argument_thread).thread_pere, |
SIGINJECT); |
rpl_siginject); |
} |
} |
} |
} |
else |
else |
Line 925 surveillance_processus(void *argument)
|
Line 918 surveillance_processus(void *argument)
|
(*s_etat_processus).erreur_systeme_processus_fils = |
(*s_etat_processus).erreur_systeme_processus_fils = |
d_es_processus; |
d_es_processus; |
} |
} |
|
|
|
envoi_signal_thread((*s_argument_thread).thread_pere, |
|
rpl_siginject); |
} |
} |
} |
} |
else |
else |
Line 1864 ecriture_pipe(struct_processus *s_etat_p
|
Line 1860 ecriture_pipe(struct_processus *s_etat_p
|
|
|
struct timespec attente; |
struct timespec attente; |
|
|
unsigned long i; |
integer8 i; |
unsigned long j; |
integer8 j; |
|
|
size_t longueur; |
size_t longueur; |
ssize_t longueur_ecriture; |
ssize_t longueur_ecriture; |
Line 1995 ecriture_pipe(struct_processus *s_etat_p
|
Line 1991 ecriture_pipe(struct_processus *s_etat_p
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
&((*((struct_vecteur *) (*s_objet).objet)) |
&((*((struct_vecteur *) (*s_objet).objet)) |
.taille), sizeof(unsigned long))) != sizeof(unsigned long)) |
.taille), sizeof(integer8))) != sizeof(integer8)) |
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 2048 ecriture_pipe(struct_processus *s_etat_p
|
Line 2044 ecriture_pipe(struct_processus *s_etat_p
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
&((*((struct_vecteur *) (*s_objet).objet)) |
&((*((struct_vecteur *) (*s_objet).objet)) |
.taille), sizeof(unsigned long))) != sizeof(unsigned long)) |
.taille), sizeof(integer8))) != sizeof(integer8)) |
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 2101 ecriture_pipe(struct_processus *s_etat_p
|
Line 2097 ecriture_pipe(struct_processus *s_etat_p
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
&((*((struct_vecteur *) (*s_objet).objet)) |
&((*((struct_vecteur *) (*s_objet).objet)) |
.taille), sizeof(unsigned long))) != sizeof(unsigned long)) |
.taille), sizeof(integer8))) != sizeof(integer8)) |
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 2154 ecriture_pipe(struct_processus *s_etat_p
|
Line 2150 ecriture_pipe(struct_processus *s_etat_p
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
&((*((struct_matrice *) (*s_objet).objet)).nombre_lignes), |
&((*((struct_matrice *) (*s_objet).objet)).nombre_lignes), |
sizeof(unsigned long))) != sizeof(unsigned long)) |
sizeof(integer8))) != sizeof(integer8)) |
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 2170 ecriture_pipe(struct_processus *s_etat_p
|
Line 2166 ecriture_pipe(struct_processus *s_etat_p
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
&((*((struct_matrice *) (*s_objet).objet)).nombre_colonnes), |
&((*((struct_matrice *) (*s_objet).objet)).nombre_colonnes), |
sizeof(unsigned long))) != sizeof(unsigned long)) |
sizeof(integer8))) != sizeof(integer8)) |
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 2229 ecriture_pipe(struct_processus *s_etat_p
|
Line 2225 ecriture_pipe(struct_processus *s_etat_p
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
&((*((struct_matrice *) (*s_objet).objet)).nombre_lignes), |
&((*((struct_matrice *) (*s_objet).objet)).nombre_lignes), |
sizeof(unsigned long))) != sizeof(unsigned long)) |
sizeof(integer8))) != sizeof(integer8)) |
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 2245 ecriture_pipe(struct_processus *s_etat_p
|
Line 2241 ecriture_pipe(struct_processus *s_etat_p
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
&((*((struct_matrice *) (*s_objet).objet)).nombre_colonnes), |
&((*((struct_matrice *) (*s_objet).objet)).nombre_colonnes), |
sizeof(unsigned long))) != sizeof(unsigned long)) |
sizeof(integer8))) != sizeof(integer8)) |
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 2304 ecriture_pipe(struct_processus *s_etat_p
|
Line 2300 ecriture_pipe(struct_processus *s_etat_p
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
&((*((struct_matrice *) (*s_objet).objet)).nombre_lignes), |
&((*((struct_matrice *) (*s_objet).objet)).nombre_lignes), |
sizeof(unsigned long))) != sizeof(unsigned long)) |
sizeof(integer8))) != sizeof(integer8)) |
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 2320 ecriture_pipe(struct_processus *s_etat_p
|
Line 2316 ecriture_pipe(struct_processus *s_etat_p
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
&((*((struct_matrice *) (*s_objet).objet)).nombre_colonnes), |
&((*((struct_matrice *) (*s_objet).objet)).nombre_colonnes), |
sizeof(unsigned long))) != sizeof(unsigned long)) |
sizeof(integer8))) != sizeof(integer8)) |
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 2514 ecriture_pipe(struct_processus *s_etat_p
|
Line 2510 ecriture_pipe(struct_processus *s_etat_p
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
&((*((struct_fonction *) (*s_objet).objet)).nombre_arguments), |
&((*((struct_fonction *) (*s_objet).objet)).nombre_arguments), |
sizeof(unsigned long))) != sizeof(unsigned long)) |
sizeof(integer8))) != sizeof(integer8)) |
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 2656 ecriture_pipe(struct_processus *s_etat_p
|
Line 2652 ecriture_pipe(struct_processus *s_etat_p
|
|
|
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
while((longueur_ecriture = write_atomic(s_etat_processus, pipe, |
&((*((struct_tableau *) (*s_objet).objet)).nombre_elements), |
&((*((struct_tableau *) (*s_objet).objet)).nombre_elements), |
sizeof(unsigned long))) != sizeof(unsigned long)) |
sizeof(integer8))) != sizeof(integer8)) |
{ |
{ |
if (longueur_ecriture == -1) |
if (longueur_ecriture == -1) |
{ |
{ |
Line 2712 lecture_pipe(struct_processus *s_etat_pr
|
Line 2708 lecture_pipe(struct_processus *s_etat_pr
|
|
|
struct timespec attente; |
struct timespec attente; |
|
|
unsigned long i; |
integer8 i; |
unsigned long j; |
integer8 j; |
|
|
if ((s_objet = allocation(s_etat_processus, NON)) == NULL) |
if ((s_objet = allocation(s_etat_processus, NON)) == NULL) |
{ |
{ |
Line 2800 lecture_pipe(struct_processus *s_etat_pr
|
Line 2796 lecture_pipe(struct_processus *s_etat_pr
|
|
|
while(read_atomic(s_etat_processus, pipe, &((*((struct_vecteur *) |
while(read_atomic(s_etat_processus, pipe, &((*((struct_vecteur *) |
(*s_objet).objet)).taille), |
(*s_objet).objet)).taille), |
sizeof(unsigned long)) != sizeof(unsigned long)) |
sizeof(integer8)) != sizeof(integer8)) |
{ |
{ |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
} |
} |
|
|
if (((*((struct_vecteur *) (*s_objet).objet)).tableau = |
if (((*((struct_vecteur *) (*s_objet).objet)).tableau = |
malloc((*((struct_vecteur *) (*s_objet).objet)).taille * |
malloc(((size_t) (*((struct_vecteur *) (*s_objet).objet)) |
sizeof(integer8))) == NULL) |
.taille) * sizeof(integer8))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
Line 2844 lecture_pipe(struct_processus *s_etat_pr
|
Line 2840 lecture_pipe(struct_processus *s_etat_pr
|
|
|
while(read_atomic(s_etat_processus, pipe, &((*((struct_vecteur *) |
while(read_atomic(s_etat_processus, pipe, &((*((struct_vecteur *) |
(*s_objet).objet)).taille), |
(*s_objet).objet)).taille), |
sizeof(unsigned long)) != sizeof(unsigned long)) |
sizeof(integer8)) != sizeof(integer8)) |
{ |
{ |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
} |
} |
|
|
if (((*((struct_vecteur *) (*s_objet).objet)).tableau = |
if (((*((struct_vecteur *) (*s_objet).objet)).tableau = |
malloc((*((struct_vecteur *) (*s_objet).objet)).taille * |
malloc(((size_t) (*((struct_vecteur *) (*s_objet).objet)) |
sizeof(real8))) == NULL) |
.taille) * sizeof(real8))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
Line 2888 lecture_pipe(struct_processus *s_etat_pr
|
Line 2884 lecture_pipe(struct_processus *s_etat_pr
|
|
|
while(read_atomic(s_etat_processus, pipe, &((*((struct_vecteur *) |
while(read_atomic(s_etat_processus, pipe, &((*((struct_vecteur *) |
(*s_objet).objet)).taille), |
(*s_objet).objet)).taille), |
sizeof(unsigned long)) != sizeof(unsigned long)) |
sizeof(integer8)) != sizeof(integer8)) |
{ |
{ |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
} |
} |
|
|
if (((*((struct_vecteur *) (*s_objet).objet)).tableau = |
if (((*((struct_vecteur *) (*s_objet).objet)).tableau = |
malloc((*((struct_vecteur *) (*s_objet).objet)).taille * |
malloc(((size_t) (*((struct_vecteur *) (*s_objet).objet)) |
sizeof(complex16))) == NULL) |
.taille) * sizeof(complex16))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
Line 2932 lecture_pipe(struct_processus *s_etat_pr
|
Line 2928 lecture_pipe(struct_processus *s_etat_pr
|
|
|
while(read_atomic(s_etat_processus, pipe, &((*((struct_matrice *) |
while(read_atomic(s_etat_processus, pipe, &((*((struct_matrice *) |
(*s_objet).objet)).nombre_lignes), |
(*s_objet).objet)).nombre_lignes), |
sizeof(unsigned long)) != sizeof(unsigned long)) |
sizeof(integer8)) != sizeof(integer8)) |
{ |
{ |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
Line 2943 lecture_pipe(struct_processus *s_etat_pr
|
Line 2939 lecture_pipe(struct_processus *s_etat_pr
|
|
|
while(read_atomic(s_etat_processus, pipe, &((*((struct_matrice *) |
while(read_atomic(s_etat_processus, pipe, &((*((struct_matrice *) |
(*s_objet).objet)).nombre_colonnes), |
(*s_objet).objet)).nombre_colonnes), |
sizeof(unsigned long)) != sizeof(unsigned long)) |
sizeof(integer8)) != sizeof(integer8)) |
{ |
{ |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
} |
} |
|
|
if (((*((struct_matrice *) (*s_objet).objet)).tableau = |
if (((*((struct_matrice *) (*s_objet).objet)).tableau = |
malloc((*((struct_matrice *) (*s_objet).objet)).nombre_lignes * |
malloc(((size_t) (*((struct_matrice *) (*s_objet).objet)) |
sizeof(integer8 *))) == NULL) |
.nombre_lignes) * sizeof(integer8 *))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
Line 2961 lecture_pipe(struct_processus *s_etat_pr
|
Line 2957 lecture_pipe(struct_processus *s_etat_pr
|
(*s_objet).objet)).nombre_lignes; i++) |
(*s_objet).objet)).nombre_lignes; i++) |
{ |
{ |
if ((((*((struct_matrice *) (*s_objet).objet)).tableau)[i] = |
if ((((*((struct_matrice *) (*s_objet).objet)).tableau)[i] = |
malloc((*((struct_matrice *) (*s_objet).objet)) |
malloc(((size_t) (*((struct_matrice *) (*s_objet).objet)) |
.nombre_colonnes * sizeof(integer8))) == NULL) |
.nombre_colonnes) * sizeof(integer8))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
Line 3000 lecture_pipe(struct_processus *s_etat_pr
|
Line 2996 lecture_pipe(struct_processus *s_etat_pr
|
|
|
while(read_atomic(s_etat_processus, pipe, &((*((struct_matrice *) |
while(read_atomic(s_etat_processus, pipe, &((*((struct_matrice *) |
(*s_objet).objet)).nombre_lignes), |
(*s_objet).objet)).nombre_lignes), |
sizeof(unsigned long)) != sizeof(unsigned long)) |
sizeof(integer8)) != sizeof(integer8)) |
{ |
{ |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
Line 3011 lecture_pipe(struct_processus *s_etat_pr
|
Line 3007 lecture_pipe(struct_processus *s_etat_pr
|
|
|
while(read_atomic(s_etat_processus, pipe, &((*((struct_matrice *) |
while(read_atomic(s_etat_processus, pipe, &((*((struct_matrice *) |
(*s_objet).objet)).nombre_colonnes), |
(*s_objet).objet)).nombre_colonnes), |
sizeof(unsigned long)) != sizeof(unsigned long)) |
sizeof(integer8)) != sizeof(integer8)) |
{ |
{ |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
} |
} |
|
|
if (((*((struct_matrice *) (*s_objet).objet)).tableau = |
if (((*((struct_matrice *) (*s_objet).objet)).tableau = |
malloc((*((struct_matrice *) (*s_objet).objet)).nombre_lignes * |
malloc(((size_t) (*((struct_matrice *) (*s_objet).objet)) |
sizeof(real8 *))) == NULL) |
.nombre_lignes) * sizeof(real8 *))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
Line 3029 lecture_pipe(struct_processus *s_etat_pr
|
Line 3025 lecture_pipe(struct_processus *s_etat_pr
|
(*s_objet).objet)).nombre_lignes; i++) |
(*s_objet).objet)).nombre_lignes; i++) |
{ |
{ |
if ((((*((struct_matrice *) (*s_objet).objet)).tableau)[i] = |
if ((((*((struct_matrice *) (*s_objet).objet)).tableau)[i] = |
malloc((*((struct_matrice *) (*s_objet).objet)) |
malloc(((size_t) (*((struct_matrice *) (*s_objet).objet)) |
.nombre_colonnes * sizeof(real8))) == NULL) |
.nombre_colonnes) * sizeof(real8))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
Line 3068 lecture_pipe(struct_processus *s_etat_pr
|
Line 3064 lecture_pipe(struct_processus *s_etat_pr
|
|
|
while(read_atomic(s_etat_processus, pipe, &((*((struct_matrice *) |
while(read_atomic(s_etat_processus, pipe, &((*((struct_matrice *) |
(*s_objet).objet)).nombre_lignes), |
(*s_objet).objet)).nombre_lignes), |
sizeof(unsigned long)) != sizeof(unsigned long)) |
sizeof(integer8)) != sizeof(integer8)) |
{ |
{ |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
Line 3079 lecture_pipe(struct_processus *s_etat_pr
|
Line 3075 lecture_pipe(struct_processus *s_etat_pr
|
|
|
while(read_atomic(s_etat_processus, pipe, &((*((struct_matrice *) |
while(read_atomic(s_etat_processus, pipe, &((*((struct_matrice *) |
(*s_objet).objet)).nombre_colonnes), |
(*s_objet).objet)).nombre_colonnes), |
sizeof(unsigned long)) != sizeof(unsigned long)) |
sizeof(integer8)) != sizeof(integer8)) |
{ |
{ |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
} |
} |
|
|
if (((*((struct_matrice *) (*s_objet).objet)).tableau = |
if (((*((struct_matrice *) (*s_objet).objet)).tableau = |
malloc((*((struct_matrice *) (*s_objet).objet)).nombre_lignes * |
malloc(((size_t) (*((struct_matrice *) (*s_objet).objet)) |
sizeof(complex16 *))) == NULL) |
.nombre_lignes) * sizeof(complex16 *))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
Line 3097 lecture_pipe(struct_processus *s_etat_pr
|
Line 3093 lecture_pipe(struct_processus *s_etat_pr
|
(*s_objet).objet)).nombre_lignes; i++) |
(*s_objet).objet)).nombre_lignes; i++) |
{ |
{ |
if ((((*((struct_matrice *) (*s_objet).objet)).tableau)[i] = |
if ((((*((struct_matrice *) (*s_objet).objet)).tableau)[i] = |
malloc((*((struct_matrice *) (*s_objet).objet)) |
malloc(((size_t) (*((struct_matrice *) (*s_objet).objet)) |
.nombre_colonnes * sizeof(complex16))) == NULL) |
.nombre_colonnes) * sizeof(complex16))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
Line 3226 lecture_pipe(struct_processus *s_etat_pr
|
Line 3222 lecture_pipe(struct_processus *s_etat_pr
|
|
|
while(read_atomic(s_etat_processus, pipe, |
while(read_atomic(s_etat_processus, pipe, |
&((*((struct_fonction *) (*s_objet).objet)) |
&((*((struct_fonction *) (*s_objet).objet)) |
.nombre_arguments), sizeof(unsigned long)) != |
.nombre_arguments), sizeof(integer8)) != |
sizeof(unsigned long)) |
sizeof(integer8)) |
{ |
{ |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
Line 3347 lecture_pipe(struct_processus *s_etat_pr
|
Line 3343 lecture_pipe(struct_processus *s_etat_pr
|
|
|
while(read_atomic(s_etat_processus, pipe, &((*((struct_tableau *) |
while(read_atomic(s_etat_processus, pipe, &((*((struct_tableau *) |
(*s_objet).objet)).nombre_elements), |
(*s_objet).objet)).nombre_elements), |
sizeof(unsigned long)) != sizeof(unsigned long)) |
sizeof(integer8)) != sizeof(integer8)) |
{ |
{ |
nanosleep(&attente, NULL); |
nanosleep(&attente, NULL); |
INCR_GRANULARITE(attente.tv_nsec); |
INCR_GRANULARITE(attente.tv_nsec); |
} |
} |
|
|
if (((*((struct_tableau *) (*s_objet).objet)).elements = malloc( |
if (((*((struct_tableau *) (*s_objet).objet)).elements = malloc( |
(*((struct_tableau *) (*s_objet).objet)).nombre_elements * |
((size_t) (*((struct_tableau *) (*s_objet).objet)) |
sizeof(struct_objet *))) == NULL) |
.nombre_elements) * sizeof(struct_objet *))) == NULL) |
{ |
{ |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
(*s_etat_processus).erreur_systeme = d_es_allocation_memoire; |
return(NULL); |
return(NULL); |
Line 3397 lecture_pipe(struct_processus *s_etat_pr
|
Line 3393 lecture_pipe(struct_processus *s_etat_pr
|
================================================================================ |
================================================================================ |
*/ |
*/ |
|
|
#ifndef OS2 |
|
extern inline |
|
#endif |
|
void |
void |
scrutation_injection(struct_processus *s_etat_processus) |
scrutation_injection(struct_processus *s_etat_processus) |
{ |
{ |
fd_set ensemble_descripteurs; |
fd_set ensemble_descripteurs; |
|
|
# if !defined(OpenBSD) && !defined(OS2) |
logical1 drapeau_erreur; |
|
logical1 registre_arret_si_exception; |
|
|
|
# ifdef PSELECT |
struct timespec timeout; |
struct timespec timeout; |
# else |
# else |
struct timeval timeout; |
struct timeval timeout; |
# endif |
# endif |
|
|
logical1 drapeau_erreur; |
|
logical1 registre_arret_si_exception; |
|
|
|
unsigned char tampon; |
unsigned char tampon; |
unsigned char tampon_profilage[20]; |
unsigned char tampon_profilage[20]; |
|
|
// Si on est dans le processus père, il n'y a rien à surveiller. |
// Si on est dans le processus père, il n'y a rien à surveiller. |
|
|
|
scrutation_interruptions(s_etat_processus); |
|
|
if ((*s_etat_processus).var_volatile_processus_racine == 0) |
if ((*s_etat_processus).var_volatile_processus_racine == 0) |
{ |
{ |
FD_ZERO(&ensemble_descripteurs); |
FD_ZERO(&ensemble_descripteurs); |
FD_SET((*s_etat_processus).pipe_nombre_injections, |
FD_SET((*s_etat_processus).pipe_nombre_injections, |
&ensemble_descripteurs); |
&ensemble_descripteurs); |
|
|
# if !defined(OpenBSD) && !defined(OS2) |
# ifdef PSELECT |
timeout.tv_sec = 0; |
timeout.tv_sec = 0; |
timeout.tv_nsec = 0; |
timeout.tv_nsec = 0; |
|
|
Line 3613 scrutation_injection(struct_processus *s
|
Line 3608 scrutation_injection(struct_processus *s
|
================================================================================ |
================================================================================ |
*/ |
*/ |
|
|
inline int test_arret(struct_processus *s_etat_processus) |
int |
|
test_arret(struct_processus *s_etat_processus) |
{ |
{ |
return((int) (*s_etat_processus).var_volatile_requete_arret); |
return((int) (*s_etat_processus).var_volatile_requete_arret); |
} |
} |