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 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,10d1a90a699d6cfc X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news3.google.com!out02a.usenetserver.com!news.usenetserver.com!in04.usenetserver.com!news.usenetserver.com!news.mailgate.org!newsfeed.stueberl.de!proxad.net!usenet-fr.net!gegeweb.org!news.ecp.fr!news.jacob-sparre.dk!pnx.dk!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Ada tasking question Date: Wed, 18 Apr 2007 19:25:22 -0500 Organization: Jacob's private Usenet server Message-ID: References: <20070418201307.18a85fd9@cube.tz.axivion.com><462688E3.6050105@nowhere.com> <20070419005738.692eeeb6@cube.tz.axivion.com> NNTP-Posting-Host: static-69-95-181-76.mad.choiceone.net X-Trace: jacob-sparre.dk 1176942239 8676 69.95.181.76 (19 Apr 2007 00:23:59 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Thu, 19 Apr 2007 00:23:59 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1807 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1807 Xref: g2news1.google.com comp.lang.ada:15109 Date: 2007-04-18T19:25:22-05:00 List-Id: "Stefan Bellon" wrote in message news:20070419005738.692eeeb6@cube.tz.axivion.com... ... > Well, here I seem to have still problems. "In the beginning", it seems > to work very well. Debug output shows that the tasks do work and fetch > new jobs and so on. But as time goes by, some tasks get "lazy" and I > have no idea why. They do not terminate, but do not fetch new jobs > although there are still open buckets to process. My instant guess is that an exception was raised and not handled in the task. That will make it "disappear" and it would stop working. But it doesn't terminate until all of the tasks in the set finish, Your tasks should have an "others" exception handler at the outmost level with a Debug call to ensure that they didn't fail for some reason. I use something like: exception when Oops:others => Debug ("Worker Task Failed: exception raised: " & Ada.Exceptions.Exception_Information (Oops)); end Bucket_Worker; (How useful this is depends on the information available in Exception_Information [which is compiler-specific], but it should at least be enough to find out what's happening, or to rule out this possibility).