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.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 2002:a24:4105:: with SMTP id x5mr1561278ita.33.1547743285190; Thu, 17 Jan 2019 08:41:25 -0800 (PST) X-Received: by 2002:aca:4c97:: with SMTP id z145mr131798oia.2.1547742084364; Thu, 17 Jan 2019 08:21:24 -0800 (PST) Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!news.uzoreto.com!2.eu.feeder.erje.net!4.us.feeder.erje.net!feeder.erje.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!q69no81326itb.0!news-out.google.com!v71ni197ita.0!nntp.google.com!k10no81029itk.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Thu, 17 Jan 2019 08:21:24 -0800 (PST) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=84.209.117.221; posting-account=bPTmZAoAAAC_6HP9XLKB9aAAxBa6BuOR NNTP-Posting-Host: 84.209.117.221 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <949cfe5a-38ee-49bc-81c6-4fa8e4223289@googlegroups.com> Subject: How to make a task wait and resume ? From: reinert Injection-Date: Thu, 17 Jan 2019 16:41:25 +0000 Content-Type: text/plain; charset="UTF-8" Xref: reader01.eternal-september.org comp.lang.ada:55293 Date: 2019-01-17T08:21:24-08:00 List-Id: Hi there, I have used a protected object to control (from "outside") wait/resume of a task. It works, but is it good practise? Below is an illustration on what I mean. Hope you get it :-) reinert protected pause1 is entry wait1; procedure halt1; procedure resume1; private OK : boolean := false; end pause1; protected body pause1 is entry wait1 when OK is begin null; end wait1; procedure halt1 is begin OK := false; end halt1; procedure resume1 is begin OK := true; end resume1; end pause1; task body task1 is begin loop pause1.wait1; do_something; end loop; end task1;