projects
/
lsp-test.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Kill process even if exception is thrown
[lsp-test.git]
/
src
/
Language
/
Haskell
/
LSP
/
Test
/
Server.hs
diff --git
a/src/Language/Haskell/LSP/Test/Server.hs
b/src/Language/Haskell/LSP/Test/Server.hs
index 7d00f2382900e454b5b67b32de1a33ffc71a4caa..bd5bdb959f670652a5e910d5d0942b43fcb0c494 100644
(file)
--- a/
src/Language/Haskell/LSP/Test/Server.hs
+++ b/
src/Language/Haskell/LSP/Test/Server.hs
@@
-1,6
+1,7
@@
module Language.Haskell.LSP.Test.Server (withServer) where
import Control.Concurrent
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
import Control.Monad
import Language.Haskell.LSP.Test.Compat
import System.IO
@@
-21,8
+22,6
@@
withServer serverExe logStdErr f = do
pid <- getProcessID serverProc
pid <- getProcessID serverProc
- result <- f serverIn serverOut pid
-
+ finally (f serverIn serverOut pid) $ do
killThread errSinkThread
terminateProcess serverProc
killThread errSinkThread
terminateProcess serverProc
- return result