From 6a145dea09e8781711adcfe1c718ee5fd6c4f3fd Mon Sep 17 00:00:00 2001 From: Robey Pointer Date: Wed, 18 Jan 2006 22:55:03 -0800 Subject: [PATCH] [project @ robey@master-shake.local-20060119065503-341b1f0c0d161e22] add Transport.atfork to handle the case where a forked child needs to cleanly dispose of a Transport where the socket is shared with its parent --- paramiko/transport.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/paramiko/transport.py b/paramiko/transport.py index abc1ea9..db3ada1 100644 --- a/paramiko/transport.py +++ b/paramiko/transport.py @@ -325,6 +325,19 @@ class Transport (threading.Thread): out += ' (connecting)' out += '>' return out + + def atfork(self): + """ + Terminate this Transport without closing the session. On posix + systems, if a Transport is open during process forking, both parent + and child will share the underlying socket, but only one process can + use the connection (without corrupting the session). Use this method + to clean up a Transport object without disrupting the other process. + + @since: 1.6 + """ + self.sock.close() + self.close() def get_security_options(self): """