use IO::Select;
use Time::HiRes qw(time);
-use Object::Remote::Logging qw( :log :dlog );
+use Object::Remote::Logging qw( :log :dlog router );
use Moo;
-# this is ro because we only actually set it using local in sub run
+BEGIN {
+ $SIG{PIPE} = sub { log_debug { "Got a PIPE signal" } };
+
+ router()->exclude_forwarding
+}
+# this is ro because we only actually set it using local in sub run
has is_running => (is => 'ro', clearer => 'stop');
#maximum duration that select() will block - undef means indefinite,
#0 means no blocking, otherwise maximum time in seconds
} elsif (exists($watch{after})) {
$at = time() + $watch{after};
} elsif (exists($watch{at})) {
- $at = $watch{at};
+ $at = $watch{at};
} else {
- die "watch_time requires every, after or at";
+ die "watch_time requires every, after or at";
}
die "watch_time requires code" unless my $code = $watch{code};
sub unwatch_time {
my ($self, $id) = @_;
- log_debug { "Removing timer with id of '$id'" };
+ log_trace { "Removing timer with id of '$id'" };
@$_ = grep !($_ eq $id), @$_ for $self->_timers;
return;
}
my $write_count = 0;
my @c = caller;
my $wait_time = $self->_next_timer_expires_delay;
- log_trace { sprintf("Run loop: loop_once() has been invoked by $c[1]:$c[2] with read:%i write:%i select timeout:%s",
- scalar(keys(%$read)), scalar(keys(%$write)), defined $wait_time ? $wait_time : 'indefinite' ) };
+ log_trace {
+ sprintf("Run loop: loop_once() has been invoked by $c[1]:$c[2] with read:%i write:%i select timeout:%s",
+ scalar(keys(%$read)), scalar(keys(%$write)), defined $wait_time ? $wait_time : 'indefinite' )
+ };
my ($readable, $writeable) = IO::Select->select(
$self->_read_select, $self->_write_select, undef, $wait_time
);
sub want_run {
my ($self) = @_;
- Dlog_debug { "Run loop: Incrimenting want_running, is now $_" }
+ Dlog_debug { "Run loop: Incremeting want_running, is now $_" }
++$self->{want_running};
}