Writing to stdin of a process
Craig Dillabaugh via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Apr 26 06:58:48 PDT 2014
On Saturday, 26 April 2014 at 13:30:41 UTC, Adam D. Ruppe wrote:
> On Saturday, 26 April 2014 at 08:45:59 UTC, Craig Dillabaugh
> wrote:
>> Can anyone tell me what I am dong wrong.
>
> In this case, I'd close the pipe when you're done.
>
>
> pipes.stdin().writeln("Hello world");
> pipes.stdin.close;
>
>
> myecho loops on stdin until it receives everything; until the
> pipe is closed.
>
> testpipes waits for myecho to complete before termination.
>
>
> The two processes are waiting on each other: testpipes won't
> close the file until it exits, and myecho won't exit until
> testpipes closes the file.
>
> an explicit call to close breaks the deadlock.
>
>
> In this case, flushing would cause the one line to appear,
> because of the buffering yazd talked about, but the program
> still wouldn't terminate since a flushed buffer still
> potentially has more coming so echo would see that line, then
> wait for more..
Thank you Adam, and yazd for your responses, now it works.
Thanks also for the explanations, I was wondering how myecho.d
would know when the input was finished so it could terminate.
More information about the Digitalmars-d-learn
mailing list