summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPascal Obry <obry@adacore.com>2022-03-24 11:30:05 +0100
committerEric Botcazou <ebotcazou@adacore.com>2022-03-24 11:31:50 +0100
commitd937c6e44ba64694c0fc88f40f42390149d1d624 (patch)
treee0b4b52a5a4eb8317858b5b016c5e02b37dfa3cd /gcc
parent85b4d881327e31ae7d2bd4072dcbe425db30f8fe (diff)
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/libgnat/g-sercom__linux.adb1
-rw-r--r--gcc/ada/libgnat/g-sercom__mingw.adb1
2 files changed, 2 insertions, 0 deletions
diff --git a/gcc/ada/libgnat/g-sercom__linux.adb b/gcc/ada/libgnat/g-sercom__linux.adb
index a2a64b1c17f..73bbb69300e 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 aea78aead8c..d3301bd045b 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");