X-Git-Url: http://git.lukelau.me/?p=lsp-test.git;a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FSession.hs;h=a153cba988890e08b5fe6f54e40d3a8cdfcbb377;hp=9af3a6774150b559500ee544ce63a298b944d387;hb=107d162a748586f20a49d3513a6c130196c8f61a;hpb=2ddc33759433fc19185140227a232a2cf8017de9 diff --git a/src/Language/Haskell/LSP/Test/Session.hs b/src/Language/Haskell/LSP/Test/Session.hs index 9af3a67..a153cba 100644 --- a/src/Language/Haskell/LSP/Test/Session.hs +++ b/src/Language/Haskell/LSP/Test/Session.hs @@ -203,11 +203,9 @@ runSessionWithHandles serverIn serverOut serverHandler config caps rootDir sessi let context = SessionContext serverIn absRootDir messageChan reqMap initRsp config caps initState = SessionState (IdInt 0) mempty mempty 0 False Nothing - - threadId <- forkIO $ void $ serverHandler serverOut context - (result, _) <- runSession context initState session - - killThread threadId + launchServerHandler = forkIO $ void $ serverHandler serverOut context + (result, _) <- bracket launchServerHandler killThread $ + const $ runSession context initState session return result