- serverLauncher = forkIO $ catch (serverHandler serverOut context) errorHandler
- serverFinalizer tid = finally (timeout 60000000 (runSession' exitServer))
- (killThread tid)
-
- (result, _) <- bracket serverLauncher serverFinalizer (const $ runSession' session)
+ serverListenerLauncher =
+ forkIO $ catch (serverHandler serverOut context) errorHandler
+ server = (Just serverIn, Just serverOut, Nothing, serverProc)
+ serverAndListenerFinalizer tid = do
+ finally (timeout (messageTimeout config * 1^6)
+ (runSession' exitServer))
+ -- Make sure to kill the listener first, before closing
+ -- handles etc via cleanupProcess
+ (killThread tid >> cleanupProcess server)
+
+ (result, _) <- bracket serverListenerLauncher
+ serverAndListenerFinalizer
+ (const $ runSession' session)