[SCM] libmessage-passing-perl Debian packaging branch, master, updated. debian/0.111-3-14-g44f6e88

Tomas Doran bobtfish at bobtfish.net
Mon May 6 11:57:17 UTC 2013


The following commit has been merged in the master branch:
commit f0ee3610960f69d910fbbd358e995ab4d2a83c08
Author: Tomas Doran <bobtfish at bobtfish.net>
Date:   Mon Jun 11 13:59:09 2012 -0400

    Use the error chain handler in connection manager

diff --git a/lib/Message/Passing/Role/ConnectionManager.pm b/lib/Message/Passing/Role/ConnectionManager.pm
index e2bbd67..11be2ed 100644
--- a/lib/Message/Passing/Role/ConnectionManager.pm
+++ b/lib/Message/Passing/Role/ConnectionManager.pm
@@ -10,7 +10,10 @@ sub BUILD {
     $self->connection;
 }
 
-with 'Message::Passing::Role::HasTimeoutAndReconnectAfter';
+with qw/
+    Message::Passing::Role::HasTimeoutAndReconnectAfter
+    Message::Passing::Role::HasErrorChain
+/;
 
 has _timeout_timer => (
     is => 'rw',
@@ -43,6 +46,7 @@ sub _build_timeout_timer {
     AnyEvent->timer(
         after => $self->timeout,
         cb => sub {
+            $self->error->consume("Connection timed out to ...");
             $self->_timeout_timer(undef);
             $self->_set_connected(0); # Use public API, causing reconnect timer to be built
         },
@@ -55,6 +59,7 @@ sub _build_reconnect_timer {
     AnyEvent->timer(
         after => $self->reconnect_after,
         cb => sub {
+            $self->error->consume("Reconnecting to ...");
             $self->_timeout_timer(undef);
             $self->connection; # Just rebuild the connection object
         },
@@ -100,7 +105,10 @@ after _set_connected => sub {
         $sub->$method($self->connection) if $sub->can($method);
     }
     $self->_timeout_timer(undef) if $connected;
-    $self->_clear_connection unless $connected;
+    if (!$connected && $self->_has_connection) {
+        $self->error->consume("Connection disconnected to ...");
+        $self->_clear_connection;
+    }
 };
 
 1;
diff --git a/lib/Message/Passing/Role/HasAConnection.pm b/lib/Message/Passing/Role/HasAConnection.pm
index cdae747..2e47490 100644
--- a/lib/Message/Passing/Role/HasAConnection.pm
+++ b/lib/Message/Passing/Role/HasAConnection.pm
@@ -3,6 +3,11 @@ use Moose::Role;
 use Moose::Util::TypeConstraints;
 use namespace::autoclean;
 
+with qw/
+    Message::Passing::Role::HasTimeoutAndReconnectAfter
+    Message::Passing::Role::HasErrorChain
+/;
+
 # requires qw/ _connection_manager_attributes _connection_manager_class /;
 requires 'connected';
 
@@ -18,14 +23,12 @@ sub _build_connection_manager {
     confess "Cannot auto-build this connection manager"
         unless $self->can('_connection_manager_attributes')
             && $self->can('_connection_manager_class');
-    my %attrs = map { $_ => $self->$_ } (@{ $self->_connection_manager_attributes }, qw/timeout reconnect_after/);
+    my %attrs = map { $_ => $self->$_ } (@{ $self->_connection_manager_attributes }, qw/timeout reconnect_after error/);
     my $class = $self->_connection_manager_class;
     Class::MOP::load_class($class);
     $class->new(%attrs);
 }
 
-with 'Message::Passing::Role::HasTimeoutAndReconnectAfter';
-
 sub BUILD {}
 after BUILD => sub {
     my $self = shift;

-- 
libmessage-passing-perl Debian packaging



More information about the Pkg-perl-cvs-commits mailing list