X-Git-Url: http://git.lukelau.me/?p=lsp-test.git;a=blobdiff_plain;f=src%2FLanguage%2FHaskell%2FLSP%2FTest.hs;h=5c41a7b68718c2d2d9ed4f1f07cd660e4c7c9fcf;hp=e946cb79a8f61a8bef6bbf2474d07ab1f6a6d8fc;hb=5bc242f3aec4f858894a4378a193c5dc847372e6;hpb=5fed47500d838f468dbb26eaf96e67afcfa5f05e diff --git a/src/Language/Haskell/LSP/Test.hs b/src/Language/Haskell/LSP/Test.hs index e946cb7..5c41a7b 100644 --- a/src/Language/Haskell/LSP/Test.hs +++ b/src/Language/Haskell/LSP/Test.hs @@ -94,7 +94,6 @@ import qualified Data.Text.IO as T import Data.Aeson import Data.Default import qualified Data.HashMap.Strict as HashMap -import Data.IORef import qualified Data.Map as Map import Data.Maybe import Language.Haskell.LSP.Types @@ -139,7 +138,6 @@ runSessionWithConfig :: SessionConfig -- ^ Configuration options for the session -> IO a runSessionWithConfig config serverExe caps rootDir session = do -- We use this IORef to make exception non-fatal when the server is supposed to shutdown. - exitOk <- newIORef False pid <- getCurrentProcessID absRootDir <- canonicalizePath rootDir @@ -151,8 +149,7 @@ runSessionWithConfig config serverExe caps rootDir session = do (Just TraceOff) Nothing withServer serverExe (logStdErr config) $ \serverIn serverOut _ -> - runSessionWithHandles serverIn serverOut (\h c -> catchWhenTrue exitOk $ listenServer h c) config caps rootDir $ do - + runSessionWithHandles serverIn serverOut (\h c -> listenServer h c) config caps rootDir $ do -- Wrap the session around initialize and shutdown calls initRspMsg <- request Initialize initializeParams :: Session InitializeResponse @@ -169,18 +166,8 @@ runSessionWithConfig config serverExe caps rootDir session = do -- Run the actual test result <- session - - liftIO $ atomicWriteIORef exitOk True - sendNotification Exit ExitParams - return result where - catchWhenTrue :: IORef Bool -> IO () -> IO () - catchWhenTrue exitOk a = - a `catch` (\e -> do - x <- readIORef exitOk - unless x $ throw (e :: SomeException)) - -- | Listens to the server output, makes sure it matches the record and -- signals any semaphores -- Note that on Windows, we cannot kill a thread stuck in getNextMessage.