@@ -89,7 +89,7 @@ autoRefresh runAction = do
89
89
90
90
event <- MVar. newEmptyMVar
91
91
let session = AutoRefreshSession { id , renderView, event, tables, lastResponse, lastPing }
92
- modifyIORef autoRefreshServer (\ s -> s { sessions = session: (get # sessions s) } )
92
+ modifyIORef' autoRefreshServer (\ s -> s { sessions = session: (get # sessions s) } )
93
93
async (gcSessions autoRefreshServer)
94
94
95
95
registerNotificationTrigger ? touchedTables autoRefreshServer
@@ -147,7 +147,7 @@ instance WSApp AutoRefreshWSApp where
147
147
getState >>= \ case
148
148
AutoRefreshActive { sessionId } -> do
149
149
let autoRefreshServer = ? applicationContext |> get # autoRefreshServer
150
- modifyIORef autoRefreshServer (\ server -> server { sessions = filter (\ AutoRefreshSession { id } -> id /= sessionId) (get # sessions server) })
150
+ modifyIORef' autoRefreshServer (\ server -> server { sessions = filter (\ AutoRefreshSession { id } -> id /= sessionId) (get # sessions server) })
151
151
AwaitingSessionID -> pure ()
152
152
153
153
@@ -157,7 +157,7 @@ registerNotificationTrigger touchedTablesVar autoRefreshServer = do
157
157
subscribedTables <- (get # subscribedTables) <$> (autoRefreshServer |> readIORef)
158
158
159
159
let subscriptionRequired = touchedTables |> filter (\ table -> subscribedTables |> Set. notMember table)
160
- modifyIORef autoRefreshServer (\ server -> server { subscribedTables = get # subscribedTables server <> Set. fromList subscriptionRequired })
160
+ modifyIORef' autoRefreshServer (\ server -> server { subscribedTables = get # subscribedTables server <> Set. fromList subscriptionRequired })
161
161
162
162
pgListener <- get # pgListener <$> readIORef autoRefreshServer
163
163
subscriptions <- subscriptionRequired |> mapM (\ table -> do
@@ -175,7 +175,7 @@ registerNotificationTrigger touchedTablesVar autoRefreshServer = do
175
175
|> map (\ session -> get # event session)
176
176
|> mapM (\ event -> MVar. tryPutMVar event () )
177
177
pure () )
178
- modifyIORef autoRefreshServer (\ s -> s { subscriptions = get # subscriptions s <> subscriptions })
178
+ modifyIORef' autoRefreshServer (\ s -> s { subscriptions = get # subscriptions s <> subscriptions })
179
179
pure ()
180
180
181
181
-- | Returns the ids of all sessions available to the client based on what sessions are found in the session cookie
@@ -208,7 +208,7 @@ updateSession :: (?applicationContext :: ApplicationContext) => UUID -> (AutoRef
208
208
updateSession sessionId updateFunction = do
209
209
let server = ? applicationContext |> get # autoRefreshServer
210
210
let updateSession' session = if get # id session == sessionId then updateFunction session else session
211
- modifyIORef server (\ server -> server { sessions = map updateSession' (get # sessions server) })
211
+ modifyIORef' server (\ server -> server { sessions = map updateSession' (get # sessions server) })
212
212
pure ()
213
213
214
214
-- | Removes all expired sessions
@@ -219,7 +219,7 @@ updateSession sessionId updateFunction = do
219
219
gcSessions :: IORef AutoRefreshServer -> IO ()
220
220
gcSessions autoRefreshServer = do
221
221
now <- getCurrentTime
222
- modifyIORef autoRefreshServer (\ autoRefreshServer -> autoRefreshServer { sessions = filter (not . isSessionExpired now) (get # sessions autoRefreshServer) })
222
+ modifyIORef' autoRefreshServer (\ autoRefreshServer -> autoRefreshServer { sessions = filter (not . isSessionExpired now) (get # sessions autoRefreshServer) })
223
223
224
224
-- | A session is expired if it was not pinged in the last 60 seconds
225
225
isSessionExpired :: UTCTime -> AutoRefreshSession -> Bool
0 commit comments