repositories
/
TD_SE.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
blame
|
history
|
raw
|
HEAD
Fix a no return value warning.
[TD_SE.git]
/
lecteursredacteurs
/
lecteursredacteurs.c
1
#include <unistd.h>
2
#include <stdio.h>
3
#include <semaphore.h>
4
5
static int
db
=
42
;
6
static int
NbL
=
0
;
7
sem_t mutex
;
8
sem_t redact
;
9
10
static void
*
lecteur
(
void
*
arg
)
11
{
12
while
(
1
) {
13
sem_wait
(&
mutex
);
14
if
(
NbL
==
0
)
15
sem_wait
(&
redact
);
16
NbL
++;
17
sem_post
(&
mutex
);
18
// lecture de la base
19
sleep
(
1
);
20
printf
(
"lecteur bd=%d
\n
"
,
db
);
21
// fin de l’accès à la base
22
sem_wait
(&
mutex
);
23
NbL
--;
24
if
(
NbL
==
0
)
25
sem_post
(&
redact
);
26
sem_post
(&
mutex
);
27
}
28
return
NULL
;
29
}
30
31
static void
*
redacteur
(
void
*
arg
)
32
{
33
while
(
1
) {
34
sem_wait
(&
redact
);
35
// modifier les données de la base
36
db
++;
37
printf
(
"redacteur bd=%d
\n
"
,
db
);
38
sleep
(
2
);
39
sem_post
(&
redact
);
40
}
41
return
NULL
;
42
}
43
44
int
main
()
45
{
46
47
}