\begin{slide}{Synchrone Kommunikation (Rendezvous)}


\begin{verbatim}
task body Server is
   Sum : Integer := 0;
begin loop
      accept Foo (Item : in Integer) 
        do Sum := Sum + Item; end Foo;
      accept Bar (Item : out Integer) 
        do Item := Sum; end Bar;
   end loop;      
end Server;
A : Server; B : Integer;
begin
   A.Foo (4); A.Bar (B); A.Foo (5); A.Bar (B);
end B;
\end{verbatim}
  
\end{slide}

\begin{slide}{Rendezvous (II)}

\begin{itemize} \itemsep 3pt
\item
  beide Partner müssen aufeinander warten
\item
  implementiert in Ada
\item
  allgemeinere Form
\begin{verbatim}
select 
     when X < Y => 
     accept Foo (Item : in Integer) do .. end;
  or when Y < Z =>
     accept Bar ( ... )
end select;
\end{verbatim}
\item
  viele Fehlermöglichkeiten, Korrektheit nicht offensichtlich
\item
  Server sollte zustandslos sein
\end{itemize}


\end{slide}



%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
