diff --git a/cassandra/io/libevreactor.py b/cassandra/io/libevreactor.py index 29039653f4..58c876fdcc 100644 --- a/cassandra/io/libevreactor.py +++ b/cassandra/io/libevreactor.py @@ -165,6 +165,10 @@ def connection_created(self, conn): def connection_destroyed(self, conn): with self._conn_set_lock: + new_conns = self._new_conns.copy() + new_conns.discard(conn) + self._new_conns = new_conns + new_live_conns = self._live_conns.copy() new_live_conns.discard(conn) self._live_conns = new_live_conns @@ -194,7 +198,8 @@ def _loop_will_run(self, prepare): self._new_conns = set() for conn in to_start: - conn._read_watcher.start() + if conn._read_watcher: + conn._read_watcher.start() changed = True