diff --git a/tests/signals004.hs b/tests/signals004.hs index d822056dbebf5d36418e4528e5ef873ca07cf0b9..ee6ca859e6a27f09e54d59ec4c0b48d9d390468d 100644 --- a/tests/signals004.hs +++ b/tests/signals004.hs @@ -1,4 +1,5 @@ import Control.Concurrent +import System.Info import System.Posix import Control.Monad @@ -8,7 +9,11 @@ import Control.Monad installers = 50 -- too many signals overflows the IO manager's pipe buffer, this seems -- to be the most we can get away with: -sigs = 400 +sigs = if os == "darwin" + then 30 -- Otherwise we get "lost signal due to full pipe: 30" + -- errors after the timeout kills the hung process + -- for the threaded{1,2} ways + else 400 main = do c <- newChan