From 3c3ede785a2b1cda8a90fbfbe3750f7c729e7d00 Mon Sep 17 00:00:00 2001 From: skierkapl <77667747+skierkapl@users.noreply.github.com> Date: Tue, 19 Jan 2021 11:31:23 +0100 Subject: [PATCH] Driver::Memory tracking of not used cases fix Fix the issue with memory consumption (LRU tacking for not existing keys) --- lib/CHI/Driver/Memory.pm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/CHI/Driver/Memory.pm b/lib/CHI/Driver/Memory.pm index cfbfb4f..223e109 100644 --- a/lib/CHI/Driver/Memory.pm +++ b/lib/CHI/Driver/Memory.pm @@ -39,7 +39,7 @@ sub BUILD { sub fetch { my ( $self, $key ) = @_; - if ( $self->{is_size_aware} ) { + if ( $self->{is_size_aware} && exists $self->{datastore}->{ $self->{namespace} }->{$key}) { $self->{datastore}->{ CHI_Meta_Namespace() }->{last_used_time}->{$key} = time; } @@ -49,6 +49,11 @@ sub fetch { sub store { my ( $self, $key, $data ) = @_; + if ( $self->{is_size_aware}) { + $self->{datastore}->{ CHI_Meta_Namespace() }->{last_used_time}->{$key} + = time; + } + $self->{datastore}->{ $self->{namespace} }->{$key} = $data; }