Skip to content

SIGINT ignored after a failed callProcess #15

Description

@DaveCTurner

On Linux, the following program does not exit on SIGINT. If "does-not-exist" is replaced with a program that does exist (e.g. "echo") then it continues to respond to SIGINT.

import Control.Concurrent
import Control.Exception
import Control.Monad
import System.IO
import System.Process

ignoreIOException :: IOException -> IO ()
ignoreIOException _ = return ()

main = do
  _ <- forkIO $ callProcess "does-not-exist" [] `catch` ignoreIOException
  _ <- getLine
  return ()

Unlike with #14 (which may well be related - it's a similar test case) I am at a loss as to what the fix might be!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions