From d80b70a2e55d49a127ff330f3ec8997ff0be9a20 Mon Sep 17 00:00:00 2001 From: Pragmatic Software Date: Wed, 23 Mar 2022 23:45:00 -0700 Subject: [PATCH] Dequeue cache events when removing SQLite Storage entries --- lib/PBot/Core/Storage/DualIndexSQLiteObject.pm | 9 +++++++++ lib/PBot/VERSION.pm | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/PBot/Core/Storage/DualIndexSQLiteObject.pm b/lib/PBot/Core/Storage/DualIndexSQLiteObject.pm index fc2de02a..1ab5f017 100644 --- a/lib/PBot/Core/Storage/DualIndexSQLiteObject.pm +++ b/lib/PBot/Core/Storage/DualIndexSQLiteObject.pm @@ -167,13 +167,16 @@ sub cache_remove { if (not defined $index2) { # remove index1 delete $self->{cache}->{$index1}; + $self->dequeue_decache($index1, '.*'); } else { # remove index2 delete $self->{cache}->{$index1}->{$index2}; + $self->dequeue_decache($index1, $index2); # remove index1 if it has no more keys left (aside from _name) if (not grep { $_ ne '_name' } keys %{$self->{cache}->{$index1}}) { delete $self->{cache}->{$index1}; + $self->dequeue_decache($index1, '.*'); } } } @@ -197,6 +200,12 @@ sub enqueue_decache { ); } +sub dequeue_decache { + my ($self, $index1, $index2) = @_; + my $key = ($index1 eq '.*' ? 'global' : $index1) . ".$index2"; + $self->{pbot}->{event_queue}->dequeue("Decache $self->{name} $key"); +} + sub create_metadata { my ($self, $columns) = @_; diff --git a/lib/PBot/VERSION.pm b/lib/PBot/VERSION.pm index 38b1ea7b..bbdae713 100644 --- a/lib/PBot/VERSION.pm +++ b/lib/PBot/VERSION.pm @@ -25,8 +25,8 @@ use PBot::Imports; # These are set by the /misc/update_version script use constant { BUILD_NAME => "PBot", - BUILD_REVISION => 4515, - BUILD_DATE => "2022-03-17", + BUILD_REVISION => 4518, + BUILD_DATE => "2022-03-23", }; sub initialize {}