Use the correct errno and remove cleanupRunningProcess
[lsp-test.git] / src / Language / Haskell / LSP / Test / Session.hs
index 4d75d1defa541f07993874da444ed8d4cf08d0ff..8e1afa8c62e515b661576fcf43190cced7e47a15 100644 (file)
@@ -218,13 +218,16 @@ runSessionWithHandles serverIn serverOut serverProc serverHandler config caps ro
       runSession' = runSession context initState
 
       errorHandler = throwTo mainThreadId :: SessionException -> IO()
-      serverLauncher = forkIO $ catch (serverHandler serverOut context) errorHandler
+      serverListenerLauncher =
+        forkIO $ catch (serverHandler serverOut context) errorHandler
       server = (Just serverIn, Just serverOut, Nothing, serverProc)
-      serverFinalizer tid = finally (timeout (messageTimeout config * 1000000)
+      serverAndListenerFinalizer tid =
+        finally (timeout (messageTimeout config * 1000000)
                          (runSession' exitServer))
-                                    (cleanupRunningProcess server >> killThread tid)
+                (cleanupProcess server >> killThread tid)
 
-  (result, _) <- bracket serverLauncher serverFinalizer (const $ runSession' session)
+  (result, _) <- bracket serverListenerLauncher serverAndListenerFinalizer
+                         (const $ runSession' session)
   return result
 
 updateStateC :: ConduitM FromServerMessage FromServerMessage (StateT SessionState (ReaderT SessionContext IO)) ()