Cygwin: pty: Fix master closing error regarding attach_mutex.
- If two or more pty masters are opened in a process, closing master causes error when closing attach_mutex. This patch fixes the issue. Addresses: https://cygwin.com/pipermail/cygwin-developers/2021-October/012418.html
This commit is contained in:
parent
eb03ac17f1
commit
8a09deb1b7
|
@ -57,6 +57,7 @@ struct pipe_reply {
|
||||||
};
|
};
|
||||||
|
|
||||||
extern HANDLE attach_mutex; /* Defined in fhandler_console.cc */
|
extern HANDLE attach_mutex; /* Defined in fhandler_console.cc */
|
||||||
|
static LONG NO_COPY master_cnt = 0;
|
||||||
|
|
||||||
inline static bool pcon_pid_alive (DWORD pid);
|
inline static bool pcon_pid_alive (DWORD pid);
|
||||||
|
|
||||||
|
@ -2041,7 +2042,8 @@ fhandler_pty_master::close ()
|
||||||
}
|
}
|
||||||
release_output_mutex ();
|
release_output_mutex ();
|
||||||
master_fwd_thread->terminate_thread ();
|
master_fwd_thread->terminate_thread ();
|
||||||
CloseHandle (attach_mutex);
|
if (InterlockedDecrement (&master_cnt) == 0)
|
||||||
|
CloseHandle (attach_mutex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2876,7 +2878,8 @@ fhandler_pty_master::setup ()
|
||||||
if (!(pcon_mutex = CreateMutex (&sa, FALSE, buf)))
|
if (!(pcon_mutex = CreateMutex (&sa, FALSE, buf)))
|
||||||
goto err;
|
goto err;
|
||||||
|
|
||||||
attach_mutex = CreateMutex (&sa, FALSE, NULL);
|
if (InterlockedIncrement (&master_cnt) == 1)
|
||||||
|
attach_mutex = CreateMutex (&sa, FALSE, NULL);
|
||||||
|
|
||||||
/* Create master control pipe which allows the master to duplicate
|
/* Create master control pipe which allows the master to duplicate
|
||||||
the pty pipe handles to processes which deserve it. */
|
the pty pipe handles to processes which deserve it. */
|
||||||
|
|
|
@ -71,3 +71,6 @@ Bug Fixes
|
||||||
in ps(1) output.
|
in ps(1) output.
|
||||||
Addresses: https://cygwin.com/pipermail/cygwin/2021-July/248998.html
|
Addresses: https://cygwin.com/pipermail/cygwin/2021-July/248998.html
|
||||||
https://cygwin.com/pipermail/cygwin/2021-August/249124.html
|
https://cygwin.com/pipermail/cygwin/2021-August/249124.html
|
||||||
|
|
||||||
|
- Fix pty master closing error regarding attach_mutex.
|
||||||
|
Addresses: https://cygwin.com/pipermail/cygwin-developers/2021-October/012418.html
|
||||||
|
|
Loading…
Reference in New Issue