equal
deleted
inserted
replaced
21 import Control.Concurrent |
21 import Control.Concurrent |
22 import Control.Monad |
22 import Control.Monad |
23 import System.Log.Logger |
23 import System.Log.Logger |
24 import Control.Monad.Reader |
24 import Control.Monad.Reader |
25 import Control.Monad.State.Strict |
25 import Control.Monad.State.Strict |
26 import Data.Set as Set |
26 import Data.Set as Set hiding (null) |
27 import Data.Unique |
27 import Data.Unique |
28 import Data.Maybe |
28 import Data.Maybe |
29 -------------------------------------- |
29 -------------------------------------- |
30 import CoreTypes |
30 import CoreTypes |
31 import NetRoutines |
31 import NetRoutines |
53 |
53 |
54 removed <- gets removedClients |
54 removed <- gets removedClients |
55 unless (ci `Set.member` removed) $ do |
55 unless (ci `Set.member` removed) $ do |
56 modify (\s -> s{clientIndex = Just ci}) |
56 modify (\s -> s{clientIndex = Just ci}) |
57 processAction $ ReactCmd cmd |
57 processAction $ ReactCmd cmd |
|
58 pa <- client's pendingActions |
|
59 when (not $ null pa) $ do |
|
60 mapM_ processAction pa |
|
61 processAction $ ModifyClient $ \c -> c{pendingActions = []} |
58 |
62 |
59 Remove ci -> |
63 Remove ci -> |
60 processAction (DeleteClient ci) |
64 processAction (DeleteClient ci) |
61 |
65 |
62 ClientAccountInfo ci uid info -> do |
66 ClientAccountInfo ci uid info -> do |