Deadlock sending stdin to a process which does not read it
This code writes some standard input to a command and collects the output:
(ih,oh,eh,ph) ← runInteractiveCommand cmd forkIO $ hPutStr ih i' -- separate thread in case cmd does not read stdin out ← hGetContents oh err ← hGetContents eh exit ← waitForProcess ph
But if cmd does not read from stdin, using ghc 6.10.3 or 6.8.2 on a mac (with or without -threaded), it seems to hang at waitForProcess. (I tried to work around this by adding forkIO at Heffalump's suggestion, but no difference. With ghc 6.10.3 on a gnu/linux machine, it works as intended.
Trac metadata
Trac field | Value |
---|---|
Version | 6.10.3 |
Type | Bug |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | libraries/process |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | |
Operating system | |
Architecture |