task body Foo is i,j : integer; begin ... select when j > 0 => accept Xyzzy (n : integer) do i := n; end Xyzzy; or ... end select; ... end Foo; task body Bar is begin Xyzzy (1); end Bar;
execute rendez vous if possible
execute conditional branch if possible
throw exception if neither of the two is possible