Kill process even if exception is thrown
authorLuke Lau <luke_lau@icloud.com>
Tue, 7 Aug 2018 18:48:37 +0000 (19:48 +0100)
committerLuke Lau <luke_lau@icloud.com>
Tue, 7 Aug 2018 18:48:37 +0000 (19:48 +0100)
src/Language/Haskell/LSP/Test/Server.hs

index 7d00f2382900e454b5b67b32de1a33ffc71a4caa..bd5bdb959f670652a5e910d5d0942b43fcb0c494 100644 (file)
@@ -1,6 +1,7 @@
 module Language.Haskell.LSP.Test.Server (withServer) where
 
 import Control.Concurrent
+import Control.Exception
 import Control.Monad
 import Language.Haskell.LSP.Test.Compat
 import System.IO
@@ -21,8 +22,6 @@ withServer serverExe logStdErr f = do
 
   pid <- getProcessID serverProc
 
-  result <- f serverIn serverOut pid
-
+  finally (f serverIn serverOut pid) $ do
     killThread errSinkThread
     terminateProcess serverProc
-  return result