chgserver: remove Python 2 support code
authorGregory Szorc <gregory.szorc@gmail.com>
Mon, 21 Feb 2022 10:43:58 -0700
changeset 48903 0bb28b7736bc
parent 48902 1ba11c8f3430
child 48904 7dc430b85351
chgserver: remove Python 2 support code The logic here is more complicated than most Python 2/3 support code. But the rewritten logic should be identical. Differential Revision: https://phab.mercurial-scm.org/D12306
mercurial/chgserver.py
--- a/mercurial/chgserver.py	Mon Feb 21 10:40:58 2022 -0700
+++ b/mercurial/chgserver.py	Mon Feb 21 10:43:58 2022 -0700
@@ -439,16 +439,13 @@
         ui = self.ui
         for (ch, fp, fd), (cn, fn, mode) in zip(self._oldios, _iochannels):
             newfp = getattr(ui, fn)
-            # On Python 2, newfp and fp may be separate file objects associated
-            # with the same fd, so we must close newfp while it's associated
-            # with the client. Otherwise the new associated fd would be closed
-            # when newfp gets deleted. On Python 3, newfp is just a wrapper
-            # around fp even if newfp is not fp, so deleting newfp is safe.
-            if not (pycompat.ispy3 or newfp is fp):
+            # On Python 3, newfp is just a wrapper around fp even if newfp is
+            # not fp, so deleting newfp is safe.
+            if newfp is not fp:
                 newfp.close()
             # restore original fd: fp is open again
             try:
-                if (pycompat.ispy3 or newfp is fp) and 'w' in mode:
+                if newfp is fp and 'w' in mode:
                     # Discard buffered data which couldn't be flushed because
                     # of EPIPE. The data should belong to the current session
                     # and should never persist.