D2029: sshpeer: extract pipe cleanup logic to own function
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Mon Feb 5 03:35:47 UTC 2018
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
So it can be used outside of instantiated classes. This is
needed to support pipe creation before __init__ is called.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D2029
AFFECTED FILES
mercurial/sshpeer.py
CHANGE DETAILS
diff --git a/mercurial/sshpeer.py b/mercurial/sshpeer.py
--- a/mercurial/sshpeer.py
+++ b/mercurial/sshpeer.py
@@ -114,6 +114,23 @@
def flush(self):
return self._main.flush()
+def _cleanuppipes(ui, pipei, pipeo, pipee):
+ """Clean up pipes used by an SSH connection."""
+ if pipeo:
+ pipeo.close()
+ if pipei:
+ pipei.close()
+
+ if pipee:
+ # Try to read from the err descriptor until EOF.
+ try:
+ for l in pipee:
+ ui.status(_('remote: '), l)
+ except (IOError, ValueError):
+ pass
+
+ pipee.close()
+
class sshpeer(wireproto.wirepeer):
def __init__(self, ui, path, create=False, sshstate=None):
self._url = path
@@ -221,17 +238,7 @@
raise exception
def _cleanup(self):
- if self._pipeo is None:
- return
- self._pipeo.close()
- self._pipei.close()
- try:
- # read the error descriptor until EOF
- for l in self._pipee:
- self.ui.status(_("remote: "), l)
- except (IOError, ValueError):
- pass
- self._pipee.close()
+ _cleanuppipes(self.ui, self._pipei, self._pipeo, self._pipee)
__del__ = _cleanup
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list