--- rpl/src/instructions_s9.c 2011/09/15 17:51:43 1.39 +++ rpl/src/instructions_s9.c 2011/09/20 08:56:24 1.40 @@ -854,7 +854,7 @@ instruction_suspend(struct_processus *s_ } } - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -873,7 +873,7 @@ instruction_suspend(struct_processus *s_ INCR_GRANULARITE(attente.tv_nsec); } - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1235,7 +1235,7 @@ instruction_swi(struct_processus *s_etat attente.tv_sec = 0; attente.tv_nsec = GRANULARITE_us * 1000; - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1245,7 +1245,7 @@ instruction_swi(struct_processus *s_etat (*s_etat_processus).pipe_nombre_objets_attente, &pid, sizeof(pid))) != sizeof(pid)) { - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1273,7 +1273,7 @@ instruction_swi(struct_processus *s_etat nanosleep(&attente, NULL); INCR_GRANULARITE(attente.tv_nsec); - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; @@ -1283,7 +1283,7 @@ instruction_swi(struct_processus *s_etat scrutation_interruptions(s_etat_processus); - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1296,7 +1296,7 @@ instruction_swi(struct_processus *s_etat attente.tv_sec = 0; attente.tv_nsec = GRANULARITE_us * 1000; - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1306,7 +1306,7 @@ instruction_swi(struct_processus *s_etat (*s_etat_processus).pipe_nombre_objets_attente, &tid, sizeof(tid))) != sizeof(tid)) { - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1334,8 +1334,7 @@ instruction_swi(struct_processus *s_etat nanosleep(&attente, NULL); INCR_GRANULARITE(attente.tv_nsec); - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) - != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1344,7 +1343,7 @@ instruction_swi(struct_processus *s_etat scrutation_interruptions(s_etat_processus); - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1356,7 +1355,7 @@ instruction_swi(struct_processus *s_etat attente.tv_sec = 0; attente.tv_nsec = GRANULARITE_us * 1000; - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1367,7 +1366,7 @@ instruction_swi(struct_processus *s_etat &interruption_reduite, sizeof(interruption_reduite))) != sizeof(interruption_reduite)) { - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1395,7 +1394,7 @@ instruction_swi(struct_processus *s_etat nanosleep(&attente, NULL); INCR_GRANULARITE(attente.tv_nsec); - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1404,7 +1403,7 @@ instruction_swi(struct_processus *s_etat scrutation_interruptions(s_etat_processus); } - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1417,7 +1416,7 @@ instruction_swi(struct_processus *s_etat attente.tv_sec = 0; attente.tv_nsec = GRANULARITE_us * 1000; - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1427,7 +1426,7 @@ instruction_swi(struct_processus *s_etat (*s_etat_processus).pipe_nombre_interruptions_attente, &pid, sizeof(pid))) != sizeof(pid)) { - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1455,8 +1454,7 @@ instruction_swi(struct_processus *s_etat nanosleep(&attente, NULL); INCR_GRANULARITE(attente.tv_nsec); - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) - != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1474,7 +1472,7 @@ instruction_swi(struct_processus *s_etat (*s_etat_processus).pipe_nombre_interruptions_attente, &pid, sizeof(pid))) != sizeof(pid)) { - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1502,15 +1500,14 @@ instruction_swi(struct_processus *s_etat nanosleep(&attente, NULL); INCR_GRANULARITE(attente.tv_nsec); - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) - != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; } } - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1520,7 +1517,7 @@ instruction_swi(struct_processus *s_etat { tid = -3; - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1530,7 +1527,7 @@ instruction_swi(struct_processus *s_etat (*s_etat_processus).pipe_nombre_interruptions_attente, &tid, sizeof(tid))) != sizeof(tid)) { - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1558,8 +1555,7 @@ instruction_swi(struct_processus *s_etat nanosleep(&attente, NULL); INCR_GRANULARITE(attente.tv_nsec); - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) - != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1577,7 +1573,7 @@ instruction_swi(struct_processus *s_etat (*s_etat_processus).pipe_nombre_interruptions_attente, &tid, sizeof(tid))) != sizeof(tid)) { - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1606,8 +1602,7 @@ instruction_swi(struct_processus *s_etat nanosleep(&attente, NULL); INCR_GRANULARITE(attente.tv_nsec); - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) - != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1616,7 +1611,7 @@ instruction_swi(struct_processus *s_etat scrutation_interruptions(s_etat_processus); } - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1626,7 +1621,7 @@ instruction_swi(struct_processus *s_etat attente.tv_sec = 0; attente.tv_nsec = GRANULARITE_us * 1000; - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1636,7 +1631,7 @@ instruction_swi(struct_processus *s_etat (*s_etat_processus).pipe_acquittement, &tampon, sizeof(unsigned char)) != sizeof(unsigned char)) { - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1645,7 +1640,7 @@ instruction_swi(struct_processus *s_etat nanosleep(&attente, NULL); INCR_GRANULARITE(attente.tv_nsec); - if (pthread_mutex_unlock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_post(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return; @@ -1654,7 +1649,7 @@ instruction_swi(struct_processus *s_etat scrutation_interruptions(s_etat_processus); } - if (pthread_mutex_lock(&((*s_etat_processus).mutex_fork)) != 0) + if (sem_wait(&((*s_etat_processus).semaphore_fork)) != 0) { (*s_etat_processus).erreur_systeme = d_es_processus; return;