From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1285) id E54D53857404; Thu, 24 Mar 2022 10:33:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E54D53857404 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Eric Botcazou To: gcc-cvs@gcc.gnu.org Subject: [gcc r11-9691] Properly reset the port handle when closing X-Act-Checkin: gcc X-Git-Author: Pascal Obry X-Git-Refname: refs/heads/releases/gcc-11 X-Git-Oldrev: 17f80c57fed1be5a2a3053e4e8fb804b6b0eba54 X-Git-Newrev: 4c649dc71189f20ab8ed09b03a7353299f1022c8 Message-Id: <20220324103357.E54D53857404@sourceware.org> Date: Thu, 24 Mar 2022 10:33:57 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Mar 2022 10:33:58 -0000 https://gcc.gnu.org/g:4c649dc71189f20ab8ed09b03a7353299f1022c8 commit r11-9691-g4c649dc71189f20ab8ed09b03a7353299f1022c8 Author: Pascal Obry Date: Thu Mar 24 11:30:05 2022 +0100 Properly reset the port handle when closing When the serial port is closed, we need to ensure that the port handle is properly reset for it to be detected as closed. gcc/ada/ PR ada/104767 * libgnat/g-sercom__mingw.adb (Close): Reset port handle to -1. * libgnat/g-sercom__linux.adb (Close): Likewise. Diff: --- gcc/ada/libgnat/g-sercom__linux.adb | 1 + gcc/ada/libgnat/g-sercom__mingw.adb | 1 + 2 files changed, 2 insertions(+) diff --git a/gcc/ada/libgnat/g-sercom__linux.adb b/gcc/ada/libgnat/g-sercom__linux.adb index f7212e87cca..1ad48ca1720 100644 --- a/gcc/ada/libgnat/g-sercom__linux.adb +++ b/gcc/ada/libgnat/g-sercom__linux.adb @@ -382,6 +382,7 @@ package body GNAT.Serial_Communications is begin if Port.H /= -1 then Res := close (int (Port.H)); + Port.H := -1; end if; end Close; diff --git a/gcc/ada/libgnat/g-sercom__mingw.adb b/gcc/ada/libgnat/g-sercom__mingw.adb index a0da5ff9434..1cf50905200 100644 --- a/gcc/ada/libgnat/g-sercom__mingw.adb +++ b/gcc/ada/libgnat/g-sercom__mingw.adb @@ -70,6 +70,7 @@ package body GNAT.Serial_Communications is begin if Port.H /= -1 then Success := CloseHandle (HANDLE (Port.H)); + Port.H := -1; if Success = Win32.FALSE then Raise_Error ("error closing the port");