From 6378027fd29cf0b208850a4bff33b7c81f51f35d Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Thu, 28 Jul 2016 08:43:48 +0200 Subject: [PATCH] Bug 16365: [QA Follow-up] Add some comment lines to Cache.pm Resolve typo inifinite too. Adds a few lines in order to stress that the thawed key of the L1 cache SHOULD ONLY be used for unsafe calls, and not be mixed with regular (safe) calls. Test plan: Nothing to test, but verify the quality of the added comments. Signed-off-by: Marcel de Rooy Signed-off-by: Jonathan Druart Signed-off-by: Kyle M Hall --- Koha/Cache.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Koha/Cache.pm b/Koha/Cache.pm index 034d77bbdf..08577bdbb1 100644 --- a/Koha/Cache.pm +++ b/Koha/Cache.pm @@ -268,7 +268,10 @@ sub set_in_cache { my $flag = '-CF0'; # 0: scalar, 1: frozen data structure if (ref($value)) { - # Set in L1 cache as a data structure, initially only in frozen form (for performance reasons) + # Set in L1 cache as a data structure + # We only save the frozen form: we do want to save $value in L1 + # directly in order to protect it. And thawing now may not be + # needed, so improves performance. $value = $L1_encoder->encode($value); $L1_cache{$self->{namespace}}{$key}->{frozen} = $value; $flag = '-CF1'; @@ -279,7 +282,7 @@ sub set_in_cache { } $value .= $flag; - # We consider an expiry of 0 to be inifinite + # We consider an expiry of 0 to be infinite if ( $expiry ) { return $set_sub ? $set_sub->( $key, $value, $expiry ) @@ -331,6 +334,7 @@ sub get_from_cache { if ( exists $L1_cache{$self->{namespace}}{$key} ) { if (ref($L1_cache{$self->{namespace}}{$key})) { if ($unsafe) { + # ONLY use thawed for unsafe calls !!! $L1_cache{$self->{namespace}}{$key}->{thawed} ||= $L1_decoder->decode($L1_cache{$self->{namespace}}{$key}->{frozen}); return $L1_cache{$self->{namespace}}{$key}->{thawed}; } else { @@ -359,6 +363,7 @@ sub get_from_cache { eval { $thawed = $L1_decoder->decode($L2_value); }; return if $@; $L1_cache{$self->{namespace}}{$key}->{frozen} = $L2_value; + # ONLY save thawed for unsafe calls !!! $L1_cache{$self->{namespace}}{$key}->{thawed} = $thawed if $unsafe; return $thawed; } -- 2.39.5