Fix stopping logger thread for real.

This commit is contained in:
Daniel Nichter
2013-05-19 12:46:47 -07:00
parent 52d9a91b4d
commit 52e37e2dc2
2 changed files with 7 additions and 5 deletions

View File

@@ -99,14 +99,14 @@ sub enable_online_logging {
&& (my $entry = $self->_message_queue->dequeue()) )
{
# $entry = [ level, "message" ]
if ( scalar @$entry ) {
if ( defined $entry->[0] ) {
push @log_entries, Percona::WebAPI::Resource::LogEntry->new(
log_level => $entry->[0],
message => $entry->[1],
);
}
else {
# empty entry = stop
# Got "stop" entry: [ undef, undef ]
$oktorun = 0;
}
}
@@ -210,7 +210,8 @@ sub _log {
sub DESTROY {
my $self = shift;
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();
}
return;