John Goerzen wrote:
I'm using System.Cmd.rawSystem in a program and have noticed a
mysterious flaw:
When I hit Ctrl-C while the child process is running, sometimes:
1) rawSystem returns ExitSuccess
or
2) rawSystem raises an IOError saying the child terminated with a
signal
I am totally at a loss as to explain this difference in behavior. I
would prefer it to choose option #2 always.
Would you like to submit a bug report on this, I'll try to get to it
before GHC 6.6.
However, even that is not quite ideal. It seems like it would be much
better if ExitCode would be replaced with
System.Posix.Process.ProcessStatus, which can indicate an Exited (with
exit code), Terminated by signal, or Stopped by signal status. Getting
an exception when the child was terminated by a signal, but not when it
exits with a failure, seems inconsistent.
The problem with this is that not all platforms are POSIX, and
System.Process is trying to be platform-independent. Having a more
elaborate version of System.Process under System.Posix.Process would be
an option, though. You can reuse some of the bits from
System.Process.Internals.
Cheers,
Simon
_______________________________________________
Haskell mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell