X-Git-Url: http://git.lukelau.me/?a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest%2FReplay.hs;h=2d5e4e612284ab6c3329a5aa7c36c548f45a1ef2;hb=ac2553b38ed2228839cb72747f8c48b7c2fab488;hp=2b55382959dd109e0b2a4beec982699db48f4361;hpb=12ac9c23d054e92a82146320e2b061c11a87e3f1;p=opengl.git diff --git a/src/Language/Haskell/LSP/Test/Replay.hs b/src/Language/Haskell/LSP/Test/Replay.hs index 2b55382..2d5e4e6 100644 --- a/src/Language/Haskell/LSP/Test/Replay.hs +++ b/src/Language/Haskell/LSP/Test/Replay.hs @@ -50,10 +50,14 @@ replaySession sessionDir = do rspSema <- newEmptyMVar passVar <- newEmptyMVar :: IO (MVar Bool) - forkIO $ runSessionWithHandler (listenServer serverMsgs requestMap reqSema rspSema passVar) sessionDir $ - sendMessages clientMsgs reqSema rspSema - - takeMVar passVar + threadId <- forkIO $ + runSessionWithHandler (listenServer serverMsgs requestMap reqSema rspSema passVar) + sessionDir + (sendMessages clientMsgs reqSema rspSema) + + result <- takeMVar passVar + killThread threadId + return result where isClientMsg (FromClient _ _) = True