PPT Slide
guards for accepts select among accepts
entry SEND (INMAIL : in MESSAGE) ;
entry RECEIVE (OUTMAIL : out MESSAGE) ;
SIZE : constant INTEGER := 20 ;
BUFFER : array (1 . . . SIZE) of MESSAGE ;
NEXTIN, NEXTOUT : INTEGER range 1. . .SIZE := 1 ;
COUNT : INTEGER range 0 . . . SIZE := 0 ;
accept SEND (INMAIL : in MESSAGE) do
BUFFER (NEXTIN) := INMAIL ;
NEXTIN := NEXTIN mod SIZE+1 ;
accept RECEIVE (OUTMAIL:out MESSAGE) do
OUTMAIL := BUFFER (NEXTOUT) ;
NEXTOUT := NEXTOUT mod SIZE+1 ;