X-Git-Url: http://git.lukelau.me/?p=lsp-test.git;a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FReplay.hs;h=dfa364b44c3600b4682eca2f94699f2fea16fad3;hp=4802c9ad152afb7b57d8a2a7d906d81b99a459a8;hb=bc52b000bf018360efbfa0fcd289329c70d2c77e;hpb=4eb97ef8a3d4b3908fa9b5bbbd5ae77cfa95cecc diff --git a/src/Language/Haskell/LSP/Test/Replay.hs b/src/Language/Haskell/LSP/Test/Replay.hs index 4802c9a..dfa364b 100644 --- a/src/Language/Haskell/LSP/Test/Replay.hs +++ b/src/Language/Haskell/LSP/Test/Replay.hs @@ -51,10 +51,15 @@ replaySession serverExe sessionDir = do rspSema <- newEmptyMVar passVar <- newEmptyMVar :: IO (MVar Bool) - forkIO $ runSessionWithHandler (listenServer serverMsgs requestMap reqSema rspSema passVar) serverExe sessionDir $ - sendMessages clientMsgs reqSema rspSema - - takeMVar passVar + threadId <- forkIO $ + runSessionWithHandler (listenServer serverMsgs requestMap reqSema rspSema passVar) + serverExe + sessionDir + (sendMessages clientMsgs reqSema rspSema) + + result <- takeMVar passVar + killThread threadId + return result where isClientMsg (FromClient _ _) = True