monitor Dozorca
boolean zajęty = false condition wolny operation przydziel()
1 if zajęty
2 wolny.wait()
3 —> zakładamy, że zajęty == false
4 zajęty = true operation zwolnij()
5 zajęty = false
6 wolny.signal()
Jeżeli po sygnalizacji warunku (wiersz 6) szansę wykonania operacji
wait() otrzymałby proces inny, niż wcześniej wstrzymany na
warunku, to ten ostatni po obudzeniu zastałby zajęty = true
(wiersz 4).