repositories
/
TD_SE.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Properly init the semaphore in the readers/writers code.
[TD_SE.git]
/
lecteursredacteurs
/
lecteursredacteurs.c
diff --git
a/lecteursredacteurs/lecteursredacteurs.c
b/lecteursredacteurs/lecteursredacteurs.c
index 2c485d7d072390e1005292b7e70bba234f18a46b..e13f115f023cb1eea67e82bb6d71997941c7fbb5 100644
(file)
--- a/
lecteursredacteurs/lecteursredacteurs.c
+++ b/
lecteursredacteurs/lecteursredacteurs.c
@@
-37,7
+37,7
@@
static void *redacteur(void *arg)
// modifier les données de la base
db++;
printf("redacteur bd=%d\n", db);
// modifier les données de la base
db++;
printf("redacteur bd=%d\n", db);
- sleep(
2
);
+ sleep(
1
);
sem_post(&redact);
}
return NULL;
sem_post(&redact);
}
return NULL;
@@
-46,8
+46,8
@@
static void *redacteur(void *arg)
int main()
{
pthread_t t1, t2;
int main()
{
pthread_t t1, t2;
- sem_init(&mutex, 0,
0
);
- sem_init(&redact, 0,
0
);
+ 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_create(&t1, NULL, redacteur, NULL);
pthread_create(&t2, NULL, lecteur, NULL);
pthread_join(t1, NULL);