gameServer/JoinsMonitor.hs
changeset 10090 a471a7bbc339
parent 10005 800d1bd9021a
child 10460 8dcea9087d75
equal deleted inserted replaced
10089:c6e5ed83fb83 10090:a471a7bbc339
    34     m <- readIORef ref
    34     m <- readIORef ref
    35     let lastJoins = map (diffUTCTime time) $ Map.findWithDefault [] host m
    35     let lastJoins = map (diffUTCTime time) $ Map.findWithDefault [] host m
    36     let last30sec = length $ takeWhile (< 30) lastJoins
    36     let last30sec = length $ takeWhile (< 30) lastJoins
    37     let last2min = length $ takeWhile (< 120) lastJoins
    37     let last2min = length $ takeWhile (< 120) lastJoins
    38     let last10min = length $ takeWhile (< 600) lastJoins
    38     let last10min = length $ takeWhile (< 600) lastJoins
    39     let pass = last30sec < 2 && last2min < 4 && last10min < 6
    39     let pass = last30sec < 2 && last2min < 3 && last10min < 5
    40 
    40 
    41     when pass $ writeIORef ref $ Map.alter (Just . (:) time . fromMaybe []) host m
    41     when pass $ writeIORef ref $ Map.alter (Just . (:) time . fromMaybe []) host m
    42 
    42 
    43     return pass
    43     return pass