Skip to content

Commit 1db2076

Browse files
authored
Truncate cache if max_messages is set to a lower value at runtime (#2957)
Fixes #2884
1 parent c3d4a33 commit 1db2076

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

src/cache/mod.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,18 @@ impl Cache {
439439
///
440440
/// By default, no messages will be cached.
441441
pub fn set_max_messages(&self, max: usize) {
442+
// Check to see if cache has to be truncated
443+
if max < self.settings.read().max_messages {
444+
for mut entry in self.messages.iter_mut() {
445+
let message_queue = entry.value_mut();
446+
let queue_len = message_queue.len();
447+
448+
if queue_len > max {
449+
message_queue.drain(..queue_len - max);
450+
}
451+
}
452+
}
453+
442454
self.settings.write().max_messages = max;
443455
}
444456

0 commit comments

Comments
 (0)