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,XPRIO autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,98dd0f70b14ccb75,start X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-07-30 17:05:10 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!headwall.stanford.edu!newshub.sdsu.edu!elnk-nf2-pas!newsfeed.earthlink.net!stamper.news.pas.earthlink.net!newsread4.news.pas.earthlink.net.POSTED!not-for-mail From: "Jeremy Smith" Newsgroups: comp.lang.ada Subject: Linux Calls X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Message-ID: Date: Thu, 31 Jul 2003 00:05:10 GMT NNTP-Posting-Host: 64.105.81.147 X-Complaints-To: abuse@earthlink.net X-Trace: newsread4.news.pas.earthlink.net 1059609910 64.105.81.147 (Wed, 30 Jul 2003 17:05:10 PDT) NNTP-Posting-Date: Wed, 30 Jul 2003 17:05:10 PDT Organization: EarthLink Inc. -- http://www.EarthLink.net Xref: archiver1.google.com comp.lang.ada:41051 Date: 2003-07-31T00:05:10+00:00 List-Id: I have two tasks, built using gnat 3.13p, running under Linux, Red Hat 8. The idea was to have one task processing and performing cyclic tasks continuously while the other task waits for commands and responds to them right away. To accomplish this I am want to run the command receipt task at a higher priority than the continuous processing task. My problem is that the commands are coming over an IPC message queue, so when the command receipt task calls msgget (visible via pragma Import) it blocks but does it outside the Ada RTS. The continuous processing task never gains context because the Ada RTS doesn't know the command receipt task has blocked pending receipt of the next command. Anybody know a way to wrap a blocking OS call so that the other lower priority Ada tasks can play until it returns? Thanks Jeremy