diff options
author | Dana Powers <dana.powers@rd.io> | 2018-03-08 13:14:44 -0500 |
---|---|---|
committer | Dana Powers <dana.powers@rd.io> | 2018-03-08 19:50:14 -0500 |
commit | d94bedfef3cf5e953f83ea2d69c6ae5d66234a8b (patch) | |
tree | 0777f76061b89ed40ec93ef32c818f1cab6dc17e /kafka/conn.py | |
parent | 4abdb1baea2468408c36cc983dfef1e8b8f54654 (diff) | |
download | kafka-python-conn_close_short_circuit.tar.gz |
Short-circuit BrokerConnection.close() if already disconnectedconn_close_short_circuit
Diffstat (limited to 'kafka/conn.py')
-rw-r--r-- | kafka/conn.py | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/kafka/conn.py b/kafka/conn.py index d778c31..ed11c3c 100644 --- a/kafka/conn.py +++ b/kafka/conn.py @@ -653,10 +653,13 @@ class BrokerConnection(object): will be failed with this exception. Default: kafka.errors.ConnectionError. """ + if self.state is ConnectionStates.DISCONNECTED: + if error is not None: + log.warning('%s: Duplicate close() with error: %s', self, error) + return log.info('%s: Closing connection. %s', self, error or '') - if self.state is not ConnectionStates.DISCONNECTED: - self.state = ConnectionStates.DISCONNECTING - self.config['state_change_callback'](self) + self.state = ConnectionStates.DISCONNECTING + self.config['state_change_callback'](self) self._update_reconnect_backoff() self._close_socket() self.state = ConnectionStates.DISCONNECTED |