Cygwin: console: Fix clean up conditions in close()
Previously, the condition to clean up input/output mode was based
on wrong premise. This patch fixes that.
Fixes: 8ee8b0c974
("Cygwin: console: Use GetCurrentProcessId() instead of myself->dwProcessId")
Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
This commit is contained in:
parent
90031ffe91
commit
30d2669478
|
@ -1976,7 +1976,8 @@ fhandler_console::close ()
|
||||||
|
|
||||||
acquire_output_mutex (mutex_timeout);
|
acquire_output_mutex (mutex_timeout);
|
||||||
|
|
||||||
if (shared_console_info[unit])
|
if (shared_console_info[unit] && !myself->cygstarted
|
||||||
|
&& (dev_t) myself->ctty == get_device ())
|
||||||
{
|
{
|
||||||
/* Restore console mode if this is the last closure. */
|
/* Restore console mode if this is the last closure. */
|
||||||
OBJECT_BASIC_INFORMATION obi;
|
OBJECT_BASIC_INFORMATION obi;
|
||||||
|
@ -1984,8 +1985,7 @@ fhandler_console::close ()
|
||||||
status = NtQueryObject (get_handle (), ObjectBasicInformation,
|
status = NtQueryObject (get_handle (), ObjectBasicInformation,
|
||||||
&obi, sizeof obi, NULL);
|
&obi, sizeof obi, NULL);
|
||||||
if (NT_SUCCESS (status)
|
if (NT_SUCCESS (status)
|
||||||
&& obi.HandleCount <= (myself->cygstarted ? 2 : 3)
|
&& obi.HandleCount == (con.owner == GetCurrentProcessId () ? 2 : 3))
|
||||||
&& (dev_t) myself->ctty == get_device ())
|
|
||||||
{
|
{
|
||||||
/* Cleaning-up console mode for cygwin apps. */
|
/* Cleaning-up console mode for cygwin apps. */
|
||||||
set_output_mode (tty::restore, &get_ttyp ()->ti, &handle_set);
|
set_output_mode (tty::restore, &get_ttyp ()->ti, &handle_set);
|
||||||
|
|
Loading…
Reference in New Issue