| 
					
				 | 
			
			
				@@ -312,22 +312,22 @@ class CarrotListener(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              the message was: %s" % message_data)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         message.ack() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    def maybe_conn_error(self, predicate, fun): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if predicate: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                fun() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            except Exception: # TODO kombu.connection_errors 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                pass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def maybe_conn_error(self, fun): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fun() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        except Exception: # TODO kombu.connection_errors 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            pass 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def close_connection(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.logger.debug("CarrotListener: " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           "Closing consumer channel...") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.task_consumer = self.maybe_conn_error(self.task_consumer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                   self.task_consumer.close) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if self.task_consumer: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.task_consumer = \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    self.maybe_conn_error(self.task_consumer.close) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.logger.debug("CarrotListener: " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           "Closing connection to broker...") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.connection = self.maybe_conn_error(self.connection, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                self.connection.close) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if self.connection: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.connection = self.maybe_conn_error(self.connection.close) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def stop_consumers(self, close=True): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         """Stop consuming.""" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -340,14 +340,13 @@ class CarrotListener(object): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self.heart = self.heart.stop() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.logger.debug("TaskConsumer: Cancelling consumers...") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.maybe_conn_error(self.task_consumer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              self.task_consumer.cancel) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if self.task_consumer: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.maybe_conn_error(self.task_consumer.cancel) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if self.event_dispatcher: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self.logger.debug("EventDispatcher: Shutting down...") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            self.event_dispatcher = self.maybe_conn_error( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            self.event_dispatcher, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            self.event_dispatcher.close) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            self.event_dispatcher = \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    self.maybe_conn_error(self.event_dispatcher.close) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if close: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self.close_connection() 
			 |