Uruchamiamy współbieżnie dwa następujące procesy.
var: p: integer := 0; process Generator; begin while (true) do begin generator_protokol_wstepny; p = generuj_nastepny(p); generator_protokol_koncowy; end; end; process Drukarz; begin while (true) do begin drukarz_protokol_wstepny; drukuj(p); drukarz_protokol_koncowy; end; end;
Pierwszy program generuje wartości, drugi program drukuje wartości. Chcemy zapewnić, że każda wartość wygenerowana przez pierwszy program zostanie wydrukowana przez drugi program dokładnie jeden raz. Jakie instrukcje należy umieścić w protokołach, aby zrealizować ten cel?