mirror of
https://github.com/pragma-/pbot.git
synced 2025-01-11 04:22:35 +01:00
Refactor and simplify atexit routines
This commit is contained in:
parent
3fc39c9359
commit
defad20bfd
@ -216,7 +216,6 @@ sub initialize {
|
|||||||
# fire all pending save events at exit
|
# fire all pending save events at exit
|
||||||
$self->{atexit}->register(sub {
|
$self->{atexit}->register(sub {
|
||||||
$self->{event_queue}->execute_and_dequeue_event('save .*');
|
$self->{event_queue}->execute_and_dequeue_event('save .*');
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ sub initialize {
|
|||||||
LOGFILE->autoflush(1);
|
LOGFILE->autoflush(1);
|
||||||
|
|
||||||
# rename logfile to start-time at exit
|
# 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 {
|
sub log {
|
||||||
|
@ -32,7 +32,7 @@ sub initialize {
|
|||||||
|
|
||||||
$self->{pbot}->{registry}->add_default('text', 'messagehistory', 'max_recall_time', $conf{max_recall_time} // 0);
|
$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 {
|
sub get_message_account {
|
||||||
|
@ -28,6 +28,7 @@ use Time::Duration;
|
|||||||
|
|
||||||
sub initialize {
|
sub initialize {
|
||||||
my ($self, %conf) = @_;
|
my ($self, %conf) = @_;
|
||||||
|
|
||||||
$self->{filename} = $conf{filename} // $self->{pbot}->{registry}->get_value('general', 'data_dir') . '/message_history.sqlite3';
|
$self->{filename} = $conf{filename} // $self->{pbot}->{registry}->get_value('general', 'data_dir') . '/message_history.sqlite3';
|
||||||
$self->{new_entries} = 0;
|
$self->{new_entries} = 0;
|
||||||
|
|
||||||
@ -178,8 +179,8 @@ sub end {
|
|||||||
$self->{pbot}->{logger}->log("Closing message history SQLite database\n");
|
$self->{pbot}->{logger}->log("Closing message history SQLite database\n");
|
||||||
|
|
||||||
if (exists $self->{dbh} and defined $self->{dbh}) {
|
if (exists $self->{dbh} and defined $self->{dbh}) {
|
||||||
$self->{dbh}->commit() if $self->{new_entries};
|
$self->{dbh}->commit;
|
||||||
$self->{dbh}->disconnect();
|
$self->{dbh}->disconnect;
|
||||||
close $self->{trace_layer} if $self->{trace_layer};
|
close $self->{trace_layer} if $self->{trace_layer};
|
||||||
delete $self->{dbh};
|
delete $self->{dbh};
|
||||||
}
|
}
|
||||||
@ -1925,7 +1926,7 @@ sub get_message_account_id {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub commit_message_history {
|
sub commit_message_history {
|
||||||
my $self = shift;
|
my ($self) = @_;
|
||||||
|
|
||||||
return if not $self->{dbh};
|
return if not $self->{dbh};
|
||||||
return if $self->{pbot}->{child}; # don't commit() as child of fork()
|
return if $self->{pbot}->{child}; # don't commit() as child of fork()
|
||||||
|
@ -26,10 +26,8 @@ sub initialize {
|
|||||||
sub execute_all {
|
sub execute_all {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
foreach my $func (@{$self->{handlers}}) {
|
foreach my $func (@{$self->{handlers}}) {
|
||||||
my $result = &{$func->{subref}}(@_);
|
$func->{subref}->(@_);
|
||||||
return $result if defined $result;
|
|
||||||
}
|
}
|
||||||
return undef;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub execute {
|
sub execute {
|
||||||
@ -37,7 +35,7 @@ sub execute {
|
|||||||
my $ref = shift;
|
my $ref = shift;
|
||||||
Carp::croak("Missing reference parameter to Registerable::execute") if not defined $ref;
|
Carp::croak("Missing reference parameter to Registerable::execute") if not defined $ref;
|
||||||
foreach my $func (@{$self->{handlers}}) {
|
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;
|
return undef;
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,7 @@ sub initialize {
|
|||||||
$self->{triggers} = {};
|
$self->{triggers} = {};
|
||||||
|
|
||||||
# save registry data at bot exit
|
# 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)
|
# load existing registry entries from file (if exists)
|
||||||
if (-e $filename) {
|
if (-e $filename) {
|
||||||
|
@ -86,6 +86,7 @@ sub end {
|
|||||||
$self->{pbot}->{logger}->log("Closing $self->{name} database ($self->{filename})\n");
|
$self->{pbot}->{logger}->log("Closing $self->{name} database ($self->{filename})\n");
|
||||||
|
|
||||||
if (defined $self->{dbh}) {
|
if (defined $self->{dbh}) {
|
||||||
|
$self->{dbh}->commit;
|
||||||
$self->{dbh}->disconnect;
|
$self->{dbh}->disconnect;
|
||||||
close $self->{trace_layer};
|
close $self->{trace_layer};
|
||||||
$self->{dbh} = undef;
|
$self->{dbh} = undef;
|
||||||
|
@ -25,7 +25,7 @@ use PBot::Imports;
|
|||||||
# These are set by the /misc/update_version script
|
# These are set by the /misc/update_version script
|
||||||
use constant {
|
use constant {
|
||||||
BUILD_NAME => "PBot",
|
BUILD_NAME => "PBot",
|
||||||
BUILD_REVISION => 4348,
|
BUILD_REVISION => 4349,
|
||||||
BUILD_DATE => "2021-08-06",
|
BUILD_DATE => "2021-08-06",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user