19 lines
393 B
Text
19 lines
393 B
Text
rm -f sem ; mkfifo sem
|
|
|
|
acquire() {
|
|
x='';while test -z "$x"; do read x; done;
|
|
}
|
|
|
|
release() {
|
|
echo '1'
|
|
}
|
|
|
|
job() {
|
|
n=$1; echo "Job $n acquired Semaphore">&2 ; sleep 2; echo "Job $n released Semaphore">&2 ;
|
|
}
|
|
|
|
( acquire < sem ; job 1 ; release > sem ) &
|
|
( acquire < sem ; job 2 ; release > sem ) &
|
|
( acquire < sem ; job 3 ; release > sem ) &
|
|
|
|
echo 'Initialize Jobs' >&2 ; echo '1' > sem
|