mercurial/wireprotoserver.py
changeset 37945 bfe8ef6e370e
parent 37944 dc1ed7fe33e4
child 38783 e7aa113b14f7
child 39809 23a00bc90a3c
--- a/mercurial/wireprotoserver.py	Sun Mar 25 16:35:24 2018 +0900
+++ b/mercurial/wireprotoserver.py	Sun Mar 25 16:47:33 2018 +0900
@@ -18,7 +18,6 @@
 from . import (
     encoding,
     error,
-    hook,
     pycompat,
     util,
     wireprototypes,
@@ -785,8 +784,7 @@
     def __init__(self, ui, repo, logfh=None):
         self._ui = ui
         self._repo = repo
-        self._fin = ui.fin
-        self._fout = ui.fout
+        self._fin, self._fout = procutil.protectstdio(ui.fin, ui.fout)
 
         # Log write I/O to stdout and stderr if configured.
         if logfh:
@@ -795,11 +793,10 @@
             ui.ferr = util.makeloggingfileobject(
                 logfh, ui.ferr, 'e', logdata=True)
 
-        hook.redirect(True)
-        ui.fout = repo.ui.fout = ui.ferr
-
     def serve_forever(self):
         self.serveuntil(threading.Event())
+        procutil.restorestdio(self._ui.fin, self._ui.fout,
+                              self._fin, self._fout)
         sys.exit(0)
 
     def serveuntil(self, ev):