X-Git-Url: https://git.piment-noir.org/?p=TD_SE.git;a=blobdiff_plain;f=lecteursredacteurs%2Flecteursredacteurs.c;h=e13f115f023cb1eea67e82bb6d71997941c7fbb5;hp=85db6457720f82d2108264527b9a6788e1b8fef2;hb=ddfab1b0dd87b58d4c53d50e2de99a7973e3cd5b;hpb=6b2a29cee63432808e12a0b9a0cd0acfc9cf3976 diff --git a/lecteursredacteurs/lecteursredacteurs.c b/lecteursredacteurs/lecteursredacteurs.c index 85db645..e13f115 100644 --- a/lecteursredacteurs/lecteursredacteurs.c +++ b/lecteursredacteurs/lecteursredacteurs.c @@ -1,4 +1,6 @@ #include +#include +#include #include #include @@ -25,6 +27,7 @@ static void *lecteur(void *arg) sem_post(&redact); sem_post(&mutex); } + return NULL; } static void *redacteur(void *arg) @@ -34,12 +37,21 @@ static void *redacteur(void *arg) // modifier les données de la base db++; printf("redacteur bd=%d\n", db); - sleep(2); + sleep(1); sem_post(&redact); } + return NULL; } int main() { - + pthread_t t1, t2; + sem_init(&mutex, 0, 1); + sem_init(&redact, 0, 1); + pthread_create(&t1, NULL, redacteur, NULL); + pthread_create(&t2, NULL, lecteur, NULL); + pthread_join(t1, NULL); + pthread_join(t2, NULL); + printf("exit\n"); + return EXIT_SUCCESS; }