This repository was archived by the owner on Jan 3, 2024. It is now read-only.
File tree Expand file tree Collapse file tree 1 file changed +15
-10
lines changed Expand file tree Collapse file tree 1 file changed +15
-10
lines changed Original file line number Diff line number Diff line change @@ -122,13 +122,18 @@ public class Bot {
122
122
123
123
func cacheMessage( _ message: Message ) {
124
124
guard !( cacheManager. messages == 0 ) else { return }
125
- msgCacheLock. lock ( )
126
-
127
- if cachedMessages. count == cacheManager. messages {
128
- let oldestMessage = cachedMessages. sorted ( by: { $0. expires < $1. expires } ) . first!
129
- cachedMessages. remove ( oldestMessage)
125
+ msgCacheWithLock {
126
+ if cachedMessages. count == cacheManager. messages {
127
+ let oldestMessage = cachedMessages. sorted ( by: { $0. expires < $1. expires } ) . first!
128
+ cachedMessages. remove ( oldestMessage)
129
+ }
130
+ cachedMessages. insert ( message)
130
131
}
131
- cachedMessages. insert ( message)
132
+ }
133
+
134
+ private func msgCacheWithLock( _ execute: ( ) -> Void ) {
135
+ msgCacheLock. lock ( )
136
+ execute ( )
132
137
msgCacheLock. unlock ( )
133
138
}
134
139
@@ -354,11 +359,11 @@ public class Bot {
354
359
private func clearCache( ) {
355
360
dms. removeAll ( )
356
361
users. removeAll ( )
357
- msgCacheLock. lock ( )
358
- for messageId in Set< Snowflake> ( cachedMessages. map ( { $0. id } ) ) {
359
- removeCachedMessage ( messageId)
362
+ msgCacheWithLock {
363
+ for messageId in cachedMessages. map ( { $0. id } ) {
364
+ removeCachedMessage ( messageId)
365
+ }
360
366
}
361
- msgCacheLock. unlock ( )
362
367
for guild in guilds {
363
368
guild. channelsCache. removeAll ( )
364
369
guild. membersCache. removeAll ( )
You can’t perform that action at this time.
0 commit comments