From f1c23989fcc6ddbba1c3756c427104fb7114fe13 Mon Sep 17 00:00:00 2001
From: Piotr Maslanka <piotr.maslanka@henrietta.com.pl>
Date: Sun, 8 Oct 2017 04:40:20 +0200
Subject: [PATCH] on_fail

---
 coolamqp/clustering/cluster.py | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/coolamqp/clustering/cluster.py b/coolamqp/clustering/cluster.py
index f5216f3..ba120ff 100644
--- a/coolamqp/clustering/cluster.py
+++ b/coolamqp/clustering/cluster.py
@@ -176,12 +176,10 @@ class Cluster(object):
         self.snr = SingleNodeReconnector(self.node, self.attache_group, self.listener)
         self.snr.on_fail.add(lambda: self.events.put_nowait(ConnectionLost()))
         if self.on_fail is not None:
-
-            def nice():
-                if not self.snr.terminating:
-                    self.on_fail()
-
-            self.snr.on_fail.add(nice)
+            self.snr.on_fail.add(
+                (lambda snr, of: lambda: of() if not snr.terminating else None)(
+                    self.snr, self.on_fail)
+            )
 
         # Spawn a transactional publisher and a noack publisher
         self.pub_tr = Publisher(Publisher.MODE_CNPUB)
-- 
GitLab