- serverLauncher = forkIO $ catch (serverHandler serverOut context) errorHandler
- serverFinalizer tid = 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 =
+ finally (timeout (messageTimeout config * 1000000)
+ (runSession' exitServer))
+ (cleanupProcess server >> killThread tid)
+
+ (result, _) <- bracket serverListenerLauncher serverAndListenerFinalizer
+ (const $ runSession' session)