[Haskell-cafe] System.Process and -threaded
Donn Cave
donn at avvanta.com
Sat May 17 14:04:50 UTC 2014
quoth Karsten Gebbert,
...
> My questions are these: is there anything I need to take care of when
> handling sub-processes like this, specifically while writing to stdin of
> the process, and with particular regard to -threaded? Does anybody spot
> a problem or something I'm overlooking when handling processes like this?
I can't say I know what's going wrong.
One thing you can do when using handles on a pipe, is put "hFlush hand"
after your "hPutStr hand" - that will clean up problems with buffering.
Really a process level buffered I/O layer like this is very little help
for your application, and adds various complexities. If you're interested,
you might extract the process handles' POSIX file descriptors and use
those - System.Posix.IO handleToFd, fdWrite, etc. - just as an experiment.
I don't see how the problems you report really suggest that you have a
buffering problem that would naturally be cured by this, though.
The other generic red flag here, for -threaded, is that the threaded
runtime uses POSIX signals to dispatch certain background functions.
That creates a flood of signal handling interrupts that can disrupt
library functions. To find out if that's a problem, you may turn
that off, on the command line +RTS -V0 -RTS.
Donn
More information about the Haskell-Cafe
mailing list