Pr-1st-1.1-m04-Slajd50
Algorytm Birmana, Schipera i Stephensona (3)
Po odebraniu pakietu od , monitor wstrzymuje dalsze jego przetwarzanie, do momentu gdy spełnione zostaną dwa następujące warunki:
Pierwszy z nich polega na sprawdzeniu czy otrzymany pakiet zawiera wiadomość wysłaną przez proces do bezpośrednio po wiadomości o numerze sekwencyjnym zapisanym w odpowiednim polu tablicy . Warunek ten gwarantuje zatem uporządkowanie FIFO w kanale. Drugi z warunków oznacza, że nadawca wiadomości nie otrzymał przed wysłaniem wiadomości innej wiadomości od o numerze sekwencyjnym większym niż . Gdyby taki przypadek miał miejsce, to wysłanie wiadomości przez byłoby przyczynowo zależne od wysłania wiadomości , a wówczas wiadomość powinna być odebrana przez wszystkie procesy, w tym również przez , przed wiadomością .
Jeżeli oba warunki zostaną spełnione, monitor sprawdza, czy adresatem wiadomości jest proces . W przypadku, gdy rzeczywiście wiadomość aplikacyjna skierowana jest do tego procesu, monitor przekazuje ją adresatowi. Następnie monitor uaktualnia swój zegar wektorowy . Jeżeli natomiast nie jest spełniony jeden z powyższych warunków, to pakiet zawierający wiadomość jest zachowywany w monitorze . Stan taki jest utrzymywany aż do nadejścia pewnego kolejnego pakietu, którego wiadomość będzie mogła zostać odebrana, spełniając w efekcie oba wymienione warunki dla wiadomości .