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.176.71.92 with SMTP id i28mr7124938uac.2.1495343054569; Sat, 20 May 2017 22:04:14 -0700 (PDT) X-Received: by 10.157.35.104 with SMTP id k37mr360209otd.14.1495343054410; Sat, 20 May 2017 22:04:14 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!2.eu.feeder.erje.net!feeder.erje.net!2.us.feeder.erje.net!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!l39no651260qtb.0!news-out.google.com!v18ni4394ita.0!nntp.google.com!67no1055407itx.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Sat, 20 May 2017 22:04:12 -0700 (PDT) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=69.53.212.124; posting-account=O1bJfwoAAAC_Vd4l-lauVJNDJxmhacGI NNTP-Posting-Host: 69.53.212.124 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: A Simpler Find Tool From: Brian Kolden Injection-Date: Sun, 21 May 2017 05:04:14 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Xref: news.eternal-september.org comp.lang.ada:46830 Date: 2017-05-20T22:04:12-07:00 List-Id: I made a simple find tool for Linux, https://github.com/bkold/finda, and I = was wondering if I could optimize the task scheduling a bit.=20 protected body Task_Pool_Status is procedure Check (Thread_Pointer : out Thread_Access) is begin for I in Status'Range loop if Status(I) =3D Ready then Status(I) :=3D Working; Thread_Pointer :=3D Threads(I); return; end if; end loop; Thread_Pointer :=3D Null; end Check; procedure End_Thread (Thread_Num : in CPU) is begin Status(Thread_Num) :=3D Ready; end End_Thread; end Task_Pool_Status; I'm using a request and reserve model to determine which threads are waitin= g and which are busy. The threads call End_Thread when they finish their wo= rk in order to be available to be queued again. I think the model itself is= good, but I was unhappy with how I find the sleeping threads. Does anyone = have a cleaner suggestion?