package Object::Remote::Connection;
-use Object::Remote::Logging qw (:log :dlog);
+use Object::Remote::Logging qw (:log :dlog router);
use Object::Remote::Future;
use Object::Remote::Null;
use Object::Remote::Handle;
use Moo;
BEGIN {
+ router()->exclude_forwarding;
+
#this will reap child processes as soon
#as they are done executing so the process
#table cleans up as fast as possible but
kill(1, -2);
}
-our $DEBUG = !!$ENV{OBJECT_REMOTE_DEBUG};
-
has _id => ( is => 'ro', required => 1, default => sub { our $NEXT_CONNECTION_ID++ } );
has send_to_fh => (
sub _load_if_possible {
my ($class) = @_;
- eval "require $class";
+ use_module($class);
if ($@) {
log_debug { "Attempt at loading '$class' failed with '$@'" };
local our @New_Ids = (-1);
return eval {
my $flat = $self->_encode($self->_deobjectify($data));
- warn "$$ >>> ${flat}\n" if $DEBUG;
$flat;
} || do {
my $err = $@; # won't get here if the eval doesn't die
sub _receive {
my ($self, $flat) = @_;
- warn "$$ <<< $flat\n" if $DEBUG;
Dlog_trace { my $l = length($flat); "Starting to deserialize $l characters of data for connection $_" } $self->_id;
my ($type, @rest) = eval { @{$self->_deserialize($flat)} }
or do { warn "Deserialize failed for ${flat}: $@"; return };