home *** CD-ROM | disk | FTP | other *** search
- with Text_IO; use Text_IO;
- with Semaphore_Package; use Semaphore_Package;
- procedure MESEM is
-
- S: Semaphore := Init(1);
-
- task T1;
- task body T1 is
- begin
- loop
- Put_Line("Task 1 is idling");
- Wait(S);
- Put_Line("Task 1 critical section");
- Signal(S);
- end loop;
- end T1;
-
- task T2;
- task body T2 is
- begin
- loop
- Put_Line("Task 2 is idling");
- Wait(S);
- Put_Line("Task 2 critical section");
- Signal(S);
- end loop;
- end T2;
-
- task T3;
- task body T3 is
- begin
- loop
- Put_Line("Task 3 is idling");
- Wait(S);
- Put_Line("Task 3 critical section");
- Signal(S);
- end loop;
- end T3;
-
- begin
- null;
- end MESEM;
-