+ errorHandler = throwTo mainThreadId :: SessionException -> IO ()
+ 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))
+ (cleanupProcess server >> killThread tid)