Refactor and simplify atexit routines

This commit is contained in:
Pragmatic Software 2021-08-06 12:59:21 -07:00
parent 3fc39c9359
commit defad20bfd
8 changed files with 11 additions and 12 deletions

View File

@ -216,7 +216,6 @@ sub initialize {
# fire all pending save events at exit
$self->{atexit}->register(sub {
$self->{event_queue}->execute_and_dequeue_event('save .*');
return;
}
);

View File

@ -49,7 +49,7 @@ sub initialize {
LOGFILE->autoflush(1);
# rename logfile to start-time at exit
$self->{pbot}->{atexit}->register(sub { $self->rotate_log; return; });
$self->{pbot}->{atexit}->register(sub { $self->rotate_log });
}
sub log {

View File

@ -32,7 +32,7 @@ sub initialize {
$self->{pbot}->{registry}->add_default('text', 'messagehistory', 'max_recall_time', $conf{max_recall_time} // 0);
$self->{pbot}->{atexit}->register(sub { $self->{database}->end(); return; });
$self->{pbot}->{atexit}->register(sub { $self->{database}->end });
}
sub get_message_account {

View File

@ -28,6 +28,7 @@ use Time::Duration;
sub initialize {
my ($self, %conf) = @_;
$self->{filename} = $conf{filename} // $self->{pbot}->{registry}->get_value('general', 'data_dir') . '/message_history.sqlite3';
$self->{new_entries} = 0;
@ -178,8 +179,8 @@ sub end {
$self->{pbot}->{logger}->log("Closing message history SQLite database\n");
if (exists $self->{dbh} and defined $self->{dbh}) {
$self->{dbh}->commit() if $self->{new_entries};
$self->{dbh}->disconnect();
$self->{dbh}->commit;
$self->{dbh}->disconnect;
close $self->{trace_layer} if $self->{trace_layer};
delete $self->{dbh};
}
@ -1925,7 +1926,7 @@ sub get_message_account_id {
}
sub commit_message_history {
my $self = shift;
my ($self) = @_;
return if not $self->{dbh};
return if $self->{pbot}->{child}; # don't commit() as child of fork()

View File

@ -26,10 +26,8 @@ sub initialize {
sub execute_all {
my $self = shift;
foreach my $func (@{$self->{handlers}}) {
my $result = &{$func->{subref}}(@_);
return $result if defined $result;
$func->{subref}->(@_);
}
return undef;
}
sub execute {
@ -37,7 +35,7 @@ sub execute {
my $ref = shift;
Carp::croak("Missing reference parameter to Registerable::execute") if not defined $ref;
foreach my $func (@{$self->{handlers}}) {
if ($ref == $func || $ref == $func->{subref}) { return &{$func->{subref}}(@_); }
if ($ref == $func || $ref == $func->{subref}) { return $func->{subref}->(@_); }
}
return undef;
}

View File

@ -28,7 +28,7 @@ sub initialize {
$self->{triggers} = {};
# save registry data at bot exit
$self->{pbot}->{atexit}->register(sub { $self->save; return; });
$self->{pbot}->{atexit}->register(sub { $self->save });
# load existing registry entries from file (if exists)
if (-e $filename) {

View File

@ -86,6 +86,7 @@ sub end {
$self->{pbot}->{logger}->log("Closing $self->{name} database ($self->{filename})\n");
if (defined $self->{dbh}) {
$self->{dbh}->commit;
$self->{dbh}->disconnect;
close $self->{trace_layer};
$self->{dbh} = undef;

View File

@ -25,7 +25,7 @@ use PBot::Imports;
# These are set by the /misc/update_version script
use constant {
BUILD_NAME => "PBot",
BUILD_REVISION => 4348,
BUILD_REVISION => 4349,
BUILD_DATE => "2021-08-06",
};