From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!think!nike!ucbcad!ucbvax!SIERRA.STANFORD.EDU!Bryan From: Bryan@SIERRA.STANFORD.EDU (Doug Bryan) Newsgroups: net.lang.ada Subject: Re: Need to see certain data inside a task type. Message-ID: <12246809238.39.BRYAN@Sierra.Stanford.EDU> Date: Tue, 14-Oct-86 16:52:23 EDT Article-I.D.: Sierra.12246809238.39.BRYAN Posted: Tue Oct 14 16:52:23 1986 Date-Received: Wed, 15-Oct-86 21:55:21 EDT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The ARPA Internet List-Id: Here is an idea for you... let me know if you get anything better. doug ........................ generic package Pack is task type T is entry My_Discriminant (D : Integer); entry Echo_Discriminant; end T; type Acc is access T; function F (D : Integer) return Acc; type Rec (D : Integer) is record Acc_T : Acc := F (D); end record; end Pack; ------------------------------- with Text_Io; package body Pack is function F (D : Integer) return Acc is A : Acc := new T; begin A.My_Discriminant (D); return A; end F; task body T is Local_Discriminant : Integer; begin accept My_Discriminant (D : Integer) do Local_Discriminant := D; end My_Discriminant; accept Echo_Discriminant; Text_Io.Put_Line (Integer'Image (Local_Discriminant)); end T; end Pack; ------------------------------- with Pack; procedure Disc_Task is package P is new Pack; -- Pack is generic in order to force elaboration of body before -- the following objects are elaborated. Rec_1 : P.Rec (1); Rec_2 : P.Rec (2); Rec_3 : P.Rec (3); begin Rec_1.Acc_T.Echo_Discriminant; Rec_2.Acc_T.Echo_Discriminant; Rec_3.Acc_T.Echo_Discriminant; end Disc_Task; -------