public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Nitro Vent <nitrovent@googlemail.com>
To: "cygwin@cygwin.com" <cygwin@cygwin.com>
Subject: Issue: Reading from stdin in Cywin64 Terminal (first noticed with Git Bash) with a .Net framework application hangs after some time
Date: Wed, 3 Mar 2021 16:11:30 +0100	[thread overview]
Message-ID: <CAM=mnHgAOUYV-DBX+2ttdui7z-qPvgMU6JstnZoPANAXWtiYiw@mail.gmail.com> (raw)

I have two .Net console applications targeting .Net Framework 4.7.2,
"produce.exe" and "consume.exe" with their respective sources

using System;using System.Threading;
namespace Produce
{
    class Program
    {
        static void Main(string[] args)
        {
            Thread.Sleep(100);
            Console.WriteLine("Hello World.");
        }
    }
}

and

using System;
namespace Consume
{
    class Program
    {
        static void Main(string[] args)
        {
            var input = Console.In.ReadToEnd();
            Console.WriteLine(input);
        }
    }
}

Running

$ ./produce.exe | ./consume.exe

in Cygwin Terminal I expect the output to be

Hello World.

But there is no output and the second process, consume.exe, hangs at
ReadToEnd().
This was verified by looking at the running processes with ps aux when
running the consume.exe in the background as well as by attaching the
Visual Studio debugger.

Piping produce.exe into cat works correctly.
Piping some more content into consume.exe also fails (e.g. find * /usr |
consume)
Executing the same command in Windows Command works correctly.

Notice that piping into consume.exe works if there is no delay in the
producer.


I had first opened this issue on Github in the git-for-windows project, as
I experienced the issue with Git Bash in Windows first:
https://github.com/git-for-windows/git/issues/3075

I then installed the current version of Cygwin and could replicate the same
issue there.



PS: I have not attached the output of cygcheck because it would reveal
information of my work environment I will not share.

Greetings,

Jasper

             reply	other threads:[~2021-03-03 15:11 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-03 15:11 Nitro Vent [this message]
2021-03-05  9:01 ` Takashi Yano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAM=mnHgAOUYV-DBX+2ttdui7z-qPvgMU6JstnZoPANAXWtiYiw@mail.gmail.com' \
    --to=nitrovent@googlemail.com \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).