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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,13c68a067434682 X-Google-Attributes: gid103376,public From: mheaney@ni.net (Matthew Heaney) Subject: Re: Task question Date: 1997/10/08 Message-ID: #1/1 X-Deja-AN: 278743088 Distribution: world References: <3439D647.7C43@home.com> <61d2bf$f0n$1@polo.advicom.net> Organization: Estormza Software Newsgroups: comp.lang.ada Date: 1997-10-08T00:00:00+00:00 List-Id: In article <61d2bf$f0n$1@polo.advicom.net>, "David C. Hoos, Sr." wrote: >Yes. Make your task body look like: > >task body x is > Finished : Boolean := False >begin > loop > select > accept my_rendezvous (some_data: some_data_type) do > -- Rendezvous stuff > end my_rendezvous; > or > accept done do > Finished := True; > end done; > end select; > exit when Finished; > end loop; > -- Now do more stuff. >end x; How about task body x is begin loop select accept my_rendezvous (some_data: some_data_type) do -- Rendezvous stuff end my_rendezvous; or accept done; exit; end select; end loop; -- Now do more stuff. end x; I don't think the flag is required. This is similar to the idiom for shutting down a task: task body T is begin Main: loop select accept E; or accept Shutdown; exit Main; end select; end loop Main; end T; -------------------------------------------------------------------- Matthew Heaney Software Development Consultant (818) 985-1271