change logging bootstrap to report uninit remote logging metadata; set flag that...
[scpubgit/Object-Remote.git] / lib / Object / Remote / Role / Connector.pm
index 83bfcea..747341c 100644 (file)
@@ -7,11 +7,11 @@ use Moo::Role;
 
 requires '_open2_for';
 
-has timeout => (is => 'ro', default => sub { { after => 10 } });
+has timeout => (is => 'ro', default => sub { 10 });
 
 sub connect {
   my $self = shift;
-  Dlog_debug { "Perparing to create connection with args of: $_" } @_;
+  Dlog_debug { "Preparing to create connection with args of: $_" } @_;
   my ($send_to_fh, $receive_from_fh, $child_pid) = $self->_open2_for(@_);
   my $channel = use_module('Object::Remote::ReadChannel')->new(
     fh => $receive_from_fh
@@ -36,25 +36,22 @@ sub connect {
       undef($channel);
     });
     $channel->on_close_call(sub {
+      log_trace { "Connection has been closed" };
       $f->fail("Channel closed without seeing Shere: $_[0]");
       undef($channel);
     });
     log_trace { "initialized events on channel for child pid '$child_pid'; creating timeout" };
     Object::Remote->current_loop
                   ->watch_time(
-                      %{$self->timeout},
+                      after => $self->timeout,
                       code => sub {
-#                        log_warn { "Connection timed out for child pid '$child_pid'" };
-#                        $f->fail("Connection timed out") unless $f->is_ready;
-#                        undef($channel);
-                        Dlog_trace { "Connection timeout timer has fired for child pid '$child_pid'; is_ready: $_" } $f->is_ready;
+                        Dlog_trace {"Connection timeout timer has fired for child pid '$child_pid'; is_ready: $_" } $f->is_ready;
                         unless($f->is_ready) {
                             log_warn { "Connection with child pid '$child_pid' has timed out" };
-                            $f->fail("Connection timed out") unless $f->is_ready;                    
+                            $f->fail("Connection timed out") unless $f->is_ready;
                         }
-                        #TODO hrm was this supposed to be conditional on the is_ready ? 
-                        #a connection is only good for timeout seconds?
                         undef($channel);
+                        
                       }
                     );
     log_trace { "connection for child pid '$child_pid' has been initialized" };