doing a close() on Transport.__del__ is useless: because a Transport can't go away until all its Channels are collected, it will never make a difference.  so don't do it, cuz __del__ is pretty hairy.
This commit is contained in:
Robey Pointer 2006-02-08 19:03:47 -08:00
parent 27ccd56af7
commit 07dfbd5808
1 changed files with 3 additions and 10 deletions

View File

@ -298,9 +298,6 @@ class Transport (threading.Thread):
self.server_accept_cv = threading.Condition(self.lock)
self.subsystem_table = { }
def __del__(self):
self.close()
def __repr__(self):
"""
Returns a string representation of this object, for debugging.
@ -551,13 +548,9 @@ class Transport (threading.Thread):
Close this session, and any open channels that are tied to it.
"""
self.active = False
# since this may be called from __del__, can't assume any attributes exist
try:
self.packetizer.close()
for chan in self.channels.values():
chan._unlink()
except AttributeError:
pass
self.packetizer.close()
for chan in self.channels.values():
chan._unlink()
def get_remote_server_key(self):
"""