remote: fix circular error handling (#3380)

This commit is contained in:
Alexander Bondarenko
2023-11-16 16:56:39 +02:00
committed by GitHub
parent 339c3d2be1
commit c31ae39617
2 changed files with 25 additions and 25 deletions
+2 -2
View File
@@ -375,8 +375,8 @@ restoreCalls = do
stopChatController :: forall m. MonadUnliftIO m => ChatController -> m ()
stopChatController ChatController {smpAgent, agentAsync = s, sndFiles, rcvFiles, expireCIFlags, remoteHostSessions, remoteCtrlSession} = do
readTVarIO remoteHostSessions >>= mapM_ (liftIO . cancelRemoteHost True)
atomically (stateTVar remoteCtrlSession (,Nothing)) >>= mapM_ (liftIO . cancelRemoteCtrl)
readTVarIO remoteHostSessions >>= mapM_ (liftIO . cancelRemoteHost False)
atomically (stateTVar remoteCtrlSession (,Nothing)) >>= mapM_ (liftIO . cancelRemoteCtrl False)
disconnectAgentClient smpAgent
readTVarIO s >>= mapM_ (\(a1, a2) -> uninterruptibleCancel a1 >> mapM_ uninterruptibleCancel a2)
closeFiles sndFiles