From cb0cb263c0ba65f688f22961c6167f3e1e8e7f00 Mon Sep 17 00:00:00 2001 From: Ali Abrar Date: Wed, 19 Jul 2023 10:30:51 -0400 Subject: [PATCH] Be even more careful about possibly-closed handles --- src/Reflex/Process.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Reflex/Process.hs b/src/Reflex/Process.hs index ca01b73..0353bcc 100644 --- a/src/Reflex/Process.hs +++ b/src/Reflex/Process.hs @@ -141,7 +141,7 @@ createProcessBufferingInput readBuffer writeBuffer spec config = do where input :: ProcessHandle -> Handle -> IO (SendPipe ByteString -> IO ()) input ph h = do - H.hSetBuffering h H.NoBuffering + H.hIsOpen h >>= \open -> if open then H.hSetBuffering h H.LineBuffering else return () void $ liftIO $ async $ race_ (waitForProcess ph) $ fix $ \loop -> do newMessage <- readBuffer open <- H.hIsOpen h @@ -154,7 +154,7 @@ createProcessBufferingInput readBuffer writeBuffer spec config = do SendPipe_EOF -> H.hClose h return writeBuffer output h trigger = do - H.hSetBuffering h H.LineBuffering + H.hIsOpen h >>= \open -> if open then H.hSetBuffering h H.LineBuffering else return () pure $ fix $ \go -> do open <- H.hIsOpen h when open $ do