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 10.66.162.137 with SMTP id ya9mr42712010pab.47.1426199942486; Thu, 12 Mar 2015 15:39:02 -0700 (PDT) X-Received: by 10.140.104.174 with SMTP id a43mr731763qgf.2.1426199942434; Thu, 12 Mar 2015 15:39:02 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!news.glorb.com!hl2no10870904igb.0!news-out.google.com!db6ni50316igc.0!nntp.google.com!hl2no10870897igb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Thu, 12 Mar 2015 15:39:02 -0700 (PDT) In-Reply-To: <871tktuc9i.fsf@adaheads.sparre-andersen.dk> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=2a02:120b:2c20:9060:191c:1bbc:ced5:aa89; posting-account=gRqrnQkAAAAC_02ynnhqGk1VRQlve6ZG NNTP-Posting-Host: 2a02:120b:2c20:9060:191c:1bbc:ced5:aa89 References: <8b4d1170-22e6-40d3-8ed1-096dc0163491@m36g2000hse.googlegroups.com> <71b51c8e-6bed-4156-9f52-31bef57b8575@googlegroups.com> <871tktuc9i.fsf@adaheads.sparre-andersen.dk> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Structure of the multitasking server From: gautier_niouzes@hotmail.com Injection-Date: Thu, 12 Mar 2015 22:39:02 +0000 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Xref: news.eternal-september.org comp.lang.ada:25155 Date: 2015-03-12T15:39:02-07:00 List-Id: Le jeudi 12 mars 2015 22:38:50 UTC+1, Jacob Sparre Andersen a =E9crit=A0: > This looks like a busy-wait to me. Is it? If not, why not? Seems so. Is it bad? Well it may eat one core or CPU's performance. Is it better with a small delay (see below) to cool down the boss ? Anyway the system is working fine. BTW, I had forgotten a Stop entry: when all the work was done, the workers = were still waiting for more :-). procedure Process_parallel is workers: array(1..8) of Worker_type; begin All_drivers_numbers: for d in is_driver'Range loop =20 Looking_for_idle: loop for w in workers'range loop select workers(w).Run(d, w); exit Looking_for_idle; else null; -- workers(w) is busy end select; end loop; delay 0.01; end loop Looking_for_idle; end loop All_drivers_numbers; for w in workers'range loop workers(w).Stop(w); end loop; =20 end Process_parallel; _________________________=20 Gautier's Ada programming=20 http://www.openhub.net/accounts/gautier_bd