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,854a9ce5e845aa13,start X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!postnews2.google.com!not-for-mail From: frederic.ormancey@atosorigin.com (Fr?d?ric Ormancey) Newsgroups: comp.lang.ada Subject: Select return code not used in Check_Selector Date: 10 Sep 2004 02:15:13 -0700 Organization: http://groups.google.com Message-ID: <9c9fb8b4.0409100115.7ecea6b2@posting.google.com> NNTP-Posting-Host: 195.68.44.146 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Trace: posting.google.com 1094807713 17665 127.0.0.1 (10 Sep 2004 09:15:13 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Fri, 10 Sep 2004 09:15:13 +0000 (UTC) Xref: g2news1.google.com comp.lang.ada:3557 Date: 2004-09-10T02:15:13-07:00 List-Id: In g-socket.adb / Check_Selector function, the ret code of C_Select call is not used. This cause erroneous R or W socket set to be processed by the caller, or in me particular case, an exit with ABORT status ( R_Sig_Socket flag is set ) Normally, C_select() will reset the bits socket sets so that only those sockets that are ready will have bits set. However, when an error occurs, the bit set remains as it was when the select call was first made. Testing the C_Select ret code will avoid erroneous processing of sockets which are not really set. Perhaps Check_Selector can then return a specific ERROR status to be added in Selector_Status type. I detect the problem with GNAT 3.17 on Linux RedHat 7.2 platform.