DIRECTORY Cmplr8Mntr2Defs; Cmplr8Mntr2: MONITOR EXPORTS Cmplr8Mntr2Defs = BEGIN TicketAvailable: CONDITION; flag: PUBLIC BOOL ¬ FALSE; ticCnt: CARDINAL ¬ 0; nullTicket: PUBLIC CARDINAL ¬ 100; AllocateTicket: PUBLIC ENTRY PROCEDURE RETURNS [ticket: CARDINAL] = BEGIN WHILE flag DO WAIT TicketAvailable; ENDLOOP; ticket ¬ TicketGenerator[]; ticCnt ¬ ticCnt + 1; END; FreeTicket: PUBLIC ENTRY PROCEDURE = BEGIN ticCnt ¬ ticCnt - 1; flag ¬ FALSE; NOTIFY TicketAvailable; END; TicketGenerator: INTERNAL PROCEDURE RETURNS [CARDINAL] = BEGIN IF ticCnt < 10 THEN RETURN[ticCnt] ELSE BEGIN flag ¬ TRUE; RETURN[nullTicket]; END; END; END... ^ <>mesaport>compiler>Cmplr8Mntr2.mesa Created on 6-May-87 9:19:12 MW 6-May-87 9:19:12 Ê€•NewlineDelimiter ™J™$J™J™J˜šÏk ˜ J˜J˜—šÏn œœœ˜.Jš˜Jšžœ œ˜J˜Jšœœœœ˜Jšœœ˜Jšœ œœ˜"J˜š žœœœ œœ œ˜CJš˜Jšœœœœ˜,J˜J˜Jšœ˜J˜—šž œœœ œ˜$Jšœœœœ˜EJ˜—š žœœ œœœ˜8Jš˜Jšœ œœ˜"Jš œœœœœ˜0Jšœ˜J˜—šœ˜J˜———…—Šh