occam-pi: расширенное свидание
Я был бы признателен, если бы кто-то мог объяснить мне понятие расширенного рандеву. Благодарю.
1 ответ
Решение
Расширенное рандеву позволяет вам выполнить действие после получения связи по каналу, но до продолжения другого процесса.
PROC a(CHAN INT sendtoB, sendtoC):
SEQ
-- do some stuff
...
-- communicate with B, this will not complete
-- until the extended rendezvous completes
sendtoB ! 123
-- do some other stuff before sending info to another process
...
sendtoC ! 345
:
PROC b(CHAN INT receivefromA):
INT tmp:
SEQ
--do some stuff
receivefromA ?? tmp
-- do some stuff before process C gets data from process a
...
-- release the channel and do some other stuff
...
:
PROC c(CHAN INT receivefromA):
INT tmp:
SEQ
-- This will wait until proc b releases
receivefromA ? tmp
-- this will only run after the first communication from A to B completes.
PROC run(CHAN BYTE kyb, scr, err):
CHAN INT AtoB, AtoC:
PAR
a(AtoB, AtoC)
b(AtoB)
c(AtoC)
: