X-Git-Url: https://git.lukelau.me/?a=blobdiff_plain;ds=sidebyside;f=src%2FLanguage%2FHaskell%2FLSP%2FTest.hs;h=80ea0e3b386f60560cabd1accbdbc79d1783ca16;hb=45b4169bf7edd0a7e5585df7713a4464670c7048;hp=8dd252c80c332335d0b9b206a6ae62bb6123940f;hpb=c7db2307c2d3dcc310fa5241756c2fbca7d00eea;p=lsp-test.git diff --git a/src/Language/Haskell/LSP/Test.hs b/src/Language/Haskell/LSP/Test.hs index 8dd252c..80ea0e3 100644 --- a/src/Language/Haskell/LSP/Test.hs +++ b/src/Language/Haskell/LSP/Test.hs @@ -229,10 +229,10 @@ runSessionWithHandles' serverProc serverIn serverOut config' caps rootDir sessio listenServer serverOut context = do msgBytes <- getNextMessage serverOut - reqMap <- readMVar $ requestMap context - - let msg = fst $ decodeFromServerMsg reqMap msgBytes + msg <- modifyMVar (requestMap context) $ \reqMap -> do + let (msg, newReqMap) = decodeFromServerMsg reqMap msgBytes writeChan (messageChan context) (ServerMessage msg) + pure (newReqMap, msg) case msg of (FromServerRsp SShutdown _) -> return ()