https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=a776a0ce26abfdf5de9b94746818dfce176ab215

commit a776a0ce26abfdf5de9b94746818dfce176ab215
Author: Takashi Yano via Cygwin-patches <[email protected]>
Date:   Fri Jan 15 18:26:31 2021 +0900

    Cygwin: pty: Set input_available_event only for cygwin pipe.
    
    - cat exits immediately in the following senario.
        1) Execute env CYGWIN=disable_pcon script
        2) Execute cmd.exe
        3) Execute cat in cmd.exe.
      This is caused by setting input_available_event for the pipe for
      non-cygwin app. This patch fixes the issue.

Diff:
---
 winsup/cygwin/fhandler_tty.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc
index 29870c779..473c0c968 100644
--- a/winsup/cygwin/fhandler_tty.cc
+++ b/winsup/cygwin/fhandler_tty.cc
@@ -386,7 +386,8 @@ fhandler_pty_master::accept_input ()
        }
     }
 
-  SetEvent (input_available_event);
+  if (write_to == get_output_handle ())
+    SetEvent (input_available_event);
   ReleaseMutex (input_mutex);
   return ret;
 }

Reply via email to