diff options
author | Thomas Quinot <quinot@adacore.com> | 2006-10-31 19:00:42 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2006-10-31 19:00:42 +0100 |
commit | ad98c85e5b31557702533ffe9fe8109ba642705c (patch) | |
tree | f6767151ab9a798d0eddba4c931af96431abf232 | |
parent | 8967c38f74e68783fdbff9ad8759178d83eef637 (diff) | |
download | gcc-ad98c85e5b31557702533ffe9fe8109ba642705c.zip gcc-ad98c85e5b31557702533ffe9fe8109ba642705c.tar.gz gcc-ad98c85e5b31557702533ffe9fe8109ba642705c.tar.bz2 |
g-socket.ads, [...] (Close_Selector): Once the signalling sockets are closed...
2006-10-31 Thomas Quinot <quinot@adacore.com>
* g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
to No_Socket.
(Selector_Type): Add default value of No_Socket for R_Sig_Socket and
W_Sig_Socket.
From-SVN: r118280
-rw-r--r-- | gcc/ada/g-socket.adb | 8 | ||||
-rw-r--r-- | gcc/ada/g-socket.ads | 11 |
2 files changed, 14 insertions, 5 deletions
diff --git a/gcc/ada/g-socket.adb b/gcc/ada/g-socket.adb index f3ebfa3..01765a7 100644 --- a/gcc/ada/g-socket.adb +++ b/gcc/ada/g-socket.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 2001-2005, AdaCore -- +-- Copyright (C) 2001-2006, AdaCore -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -560,6 +560,12 @@ package body GNAT.Sockets is when Socket_Error => null; end; + + -- Reset R_Sig_Socket and W_Sig_Socket to No_Socket to ensure that any + -- (errneous) subsequent attempt to use this selector properly fails. + + Selector.R_Sig_Socket := No_Socket; + Selector.W_Sig_Socket := No_Socket; end Close_Selector; ------------------ diff --git a/gcc/ada/g-socket.ads b/gcc/ada/g-socket.ads index 6268545..3e974a2 100644 --- a/gcc/ada/g-socket.ads +++ b/gcc/ada/g-socket.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2001-2005, AdaCore -- +-- Copyright (C) 2001-2006, AdaCore -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -961,7 +961,10 @@ package GNAT.Sockets is -- Create a new selector procedure Close_Selector (Selector : in out Selector_Type); - -- Close Selector and all internal descriptors associated + -- Close Selector and all internal descriptors associated; deallocate any + -- associated resources. This subprogram may be called only when there is + -- no other task still using Selector (i.e. still executing Check_Selector + -- or Abort_Selector on this Selector). type Selector_Status is (Completed, Expired, Aborted); @@ -1007,8 +1010,8 @@ private No_Socket : constant Socket_Type := -1; type Selector_Type is limited record - R_Sig_Socket : Socket_Type; - W_Sig_Socket : Socket_Type; + R_Sig_Socket : Socket_Type := No_Socket; + W_Sig_Socket : Socket_Type := No_Socket; end record; pragma Volatile (Selector_Type); |