rspSema <- newEmptyMVar
passVar <- newEmptyMVar :: IO (MVar Bool)
- forkIO $ runSessionWithHandler (listenServer serverMsgs requestMap reqSema rspSema passVar) serverExe sessionDir $
- sendMessages clientMsgs reqSema rspSema
-
- takeMVar passVar
+ threadId <- forkIO $
+ runSessionWithHandler (listenServer serverMsgs requestMap reqSema rspSema passVar)
+ serverExe
+ sessionDir
+ (sendMessages clientMsgs reqSema rspSema)
+
+ result <- takeMVar passVar
+ killThread threadId
+ return result
where
isClientMsg (FromClient _ _) = True