mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 05:00:45 +00:00
Fix stopping logger thread for real.
This commit is contained in:
@@ -4869,7 +4869,7 @@ sub enable_online_logging {
|
|||||||
&& $max_log_entries--
|
&& $max_log_entries--
|
||||||
&& (my $entry = $self->_message_queue->dequeue()) )
|
&& (my $entry = $self->_message_queue->dequeue()) )
|
||||||
{
|
{
|
||||||
if ( scalar @$entry ) {
|
if ( defined $entry->[0] ) {
|
||||||
push @log_entries, Percona::WebAPI::Resource::LogEntry->new(
|
push @log_entries, Percona::WebAPI::Resource::LogEntry->new(
|
||||||
log_level => $entry->[0],
|
log_level => $entry->[0],
|
||||||
message => $entry->[1],
|
message => $entry->[1],
|
||||||
@@ -4978,7 +4978,8 @@ sub _log {
|
|||||||
sub DESTROY {
|
sub DESTROY {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
if ( $self->online_logging ) {
|
if ( $self->online_logging ) {
|
||||||
$self->_message_queue->enqueue( () ); # stop thread's while loop
|
my @stop :shared = (undef, undef);
|
||||||
|
$self->_message_queue->enqueue(\@stop); # stop the thread
|
||||||
$self->_thread->join();
|
$self->_thread->join();
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
@@ -99,14 +99,14 @@ sub enable_online_logging {
|
|||||||
&& (my $entry = $self->_message_queue->dequeue()) )
|
&& (my $entry = $self->_message_queue->dequeue()) )
|
||||||
{
|
{
|
||||||
# $entry = [ level, "message" ]
|
# $entry = [ level, "message" ]
|
||||||
if ( scalar @$entry ) {
|
if ( defined $entry->[0] ) {
|
||||||
push @log_entries, Percona::WebAPI::Resource::LogEntry->new(
|
push @log_entries, Percona::WebAPI::Resource::LogEntry->new(
|
||||||
log_level => $entry->[0],
|
log_level => $entry->[0],
|
||||||
message => $entry->[1],
|
message => $entry->[1],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# empty entry = stop
|
# Got "stop" entry: [ undef, undef ]
|
||||||
$oktorun = 0;
|
$oktorun = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -210,7 +210,8 @@ sub _log {
|
|||||||
sub DESTROY {
|
sub DESTROY {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
if ( $self->online_logging ) {
|
if ( $self->online_logging ) {
|
||||||
$self->_message_queue->enqueue( () ); # stop thread's while loop
|
my @stop :shared = (undef, undef);
|
||||||
|
$self->_message_queue->enqueue(\@stop); # stop the thread
|
||||||
$self->_thread->join();
|
$self->_thread->join();
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user