fix futures that need to be failed not being failed when a connection is closed
[scpubgit/Object-Remote.git] / lib / Object / Remote / Connection.pm
index e47b8fc..66d4c2e 100644 (file)
@@ -16,6 +16,7 @@ use Module::Runtime qw(use_module);
 use Scalar::Util qw(weaken blessed refaddr openhandle);
 use JSON::PP qw(encode_json);
 use Moo;
+use Carp qw(croak);
 
 BEGIN { 
   router()->exclude_forwarding;
@@ -120,6 +121,7 @@ sub _fail_outstanding {
   foreach(keys(%$outstanding)) {
     log_trace { "Failing future for $_" };
     my $future = $outstanding->{$_};
+    $future->fail("$error\n");
   }
 
   %$outstanding = ();
@@ -343,7 +345,7 @@ sub _send {
   my $fh = $self->send_to_fh;
   
   unless ($self->is_valid) {
-    die "Attempt to invoke _send on a connection that is not valid";
+    croak "Attempt to invoke _send on a connection that is not valid";
   }
   
   Dlog_trace { "Starting to serialize data in argument to _send for connection $_" } $self->_id;