CONTR22@NOSC-TECR.ARPA.UUCP (07/07/87)
Can anyone answer the following from my colleague, Jim Silver: -- According to the LRM, we can pass a task type as the actual parameter -- corresponding to Formal_Task_Type in the following generic procedure. generic type Formal_Task_Type is limited private; procedure Generic_Procedure ( Task_Object : Formal_Task_Type ); procedure Generic_Procedure ( Task_Object : Formal_Task_Type ) is begin -- Great, but what useful thing can we do with Task_Object here? -- In particular, is there any way to call an entry in Task_Object? null; end Generic_Procedure; with Generic_Procedure; procedure User_Procedure is task type Actual_Task_Type is entry Entry_Point; end Actual_Task_Type; Task_Object_1 : Actual_Task_Type; Task_Object_2 : Actual_Task_Type; task body Actual_Task_Type is begin accept Entry_Point; end Actual_Task_Type; procedure Instantiated_Procedure is new Generic_Procedure(Actual_Task_Type); begin -- Or, from the user's viewpoint, is there a mechanism which allows the -- first invocation below to call Task_Object_1.Entry_Point and the second -- to call Task_Object_2.Entry_Point? Instantiated_Procedure( Task_Object_1 ); Instantiated_Procedure( Task_Object_2 ); end User_Procedure; -- (I know that I can rewrite Generic_Procedure with a generic formal -- procedure parameter then instantiate it twice, once with each entry -- point, to get the same effect. I would like to know if I can use task Thanks. Linda Rising Magnavox Ft. Wayne, IN -- types to avoid this.)