Always build message queue, don't dequeue until it exists though.

This commit is contained in:
Daniel Nichter
2013-05-17 09:45:09 -07:00
parent e2aab02bee
commit ea481471c0
2 changed files with 73 additions and 73 deletions

View File

@@ -4846,8 +4846,8 @@ has '_thread' => (
sub BUILD { sub BUILD {
my $self = shift; my $self = shift;
if ( $self->client && $self->log_link ) {
$self->_message_queue(Thread::Queue->new()); $self->_message_queue(Thread::Queue->new());
$self->_thread( $self->_thread(
threads::async { threads::async {
my @log_entries; my @log_entries;
@@ -4855,7 +4855,8 @@ sub BUILD {
QUEUE: QUEUE:
while ( $oktorun ) { while ( $oktorun ) {
my $max_log_entries = 1_000; # for each POST + backlog my $max_log_entries = 1_000; # for each POST + backlog
while ( $self->message_queue->pending() while ( $self->_message_queue
&& $self->_message_queue->pending()
&& $max_log_entries-- && $max_log_entries--
&& (my $entry = $self->message_queue->dequeue()) ) && (my $entry = $self->message_queue->dequeue()) )
{ {
@@ -4879,11 +4880,10 @@ sub BUILD {
@log_entries = (); @log_entries = ();
} }
} # have log entries } # have log entries
sleep 3; sleep ($self->_message_queue ? 3 : 5);
} # QUEUE } # QUEUE
} # threads::async } # threads::async
); );
}
return; return;
} }

View File

@@ -75,8 +75,8 @@ has '_thread' => (
sub BUILD { sub BUILD {
my $self = shift; my $self = shift;
if ( $self->client && $self->log_link ) {
$self->_message_queue(Thread::Queue->new()); $self->_message_queue(Thread::Queue->new());
$self->_thread( $self->_thread(
threads::async { threads::async {
my @log_entries; my @log_entries;
@@ -84,7 +84,8 @@ sub BUILD {
QUEUE: QUEUE:
while ( $oktorun ) { while ( $oktorun ) {
my $max_log_entries = 1_000; # for each POST + backlog my $max_log_entries = 1_000; # for each POST + backlog
while ( $self->message_queue->pending() while ( $self->_message_queue
&& $self->_message_queue->pending()
&& $max_log_entries-- && $max_log_entries--
&& (my $entry = $self->message_queue->dequeue()) ) && (my $entry = $self->message_queue->dequeue()) )
{ {
@@ -109,11 +110,10 @@ sub BUILD {
@log_entries = (); @log_entries = ();
} }
} # have log entries } # have log entries
sleep 3; sleep ($self->_message_queue ? 3 : 5);
} # QUEUE } # QUEUE
} # threads::async } # threads::async
); );
}
return; return;
} }