Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!husc6!m2c!wpi!wpi.wpi.edu!tfrancis From: tfrancis@wpi.wpi.edu (Krishan M Nainani) Newsgroups: comp.lang.ada Subject: The ADA Rendevous Message-ID: <3567@wpi.wpi.edu> Date: 17 Aug 89 22:57:13 GMT Sender: tfrancis@wpi.wpi.edu Reply-To: tfrancis@wpi.wpi.edu (Krishan M Nainani) Distribution: usa Organization: Worcester Polytechnic Institute, Worcester, Mass. Lines: 33 [1mHi[m, I have a question about the Ada rendevous. There are many tasks each with 1 entry and these tasks are scheduled by calling a global scheduler from inside the entry call. So, initially any task is chosen and its entry is accepted and somewhere within the entry there is a call to the scheduler (which is global to these tasks). Next, the scheduler checks a data-structure which contains the varying importances of each task and then it executes that task's entry. This can be done. But I am unsure as to how I can encode the following restriction which is illustrated in the following example: Task A was chosen to run and so it was entered at entry point AA. Within the code of AA, there was a call to the scheduler which found that task B is more important than task A and so task A should be suspended and task B is entered at entry point BB. Within BB, there was a call to the scheduler which determined that task C (entry CC) should now run. Within CC, it was found that task A (entry AA) is the most important and should be run now. HOWEVER, task A should be resumed at where it left off (i.e where it was suspended). THIS IS THE PART THAT I DON'T KNOW HOW TO ENCODE IN ADA. This seems to involve manipulating the global task queue at runtime. I doubt if I can do this in standard Ada but is it possible to accomplish this by interfacing to C (not Assembler) ? [5;7mAnyone have any clues whatsoever?[m Krishan Nainani (tfrancis@wpi.wpi.edu)