mercurial/commandserver.py
changeset 46086 ac9de799d390
parent 45942 89a2afe31e82
child 46101 49b6910217f9
--- a/mercurial/commandserver.py	Wed Dec 02 14:27:45 2020 +0530
+++ b/mercurial/commandserver.py	Thu Dec 03 17:18:49 2020 +0530
@@ -355,7 +355,18 @@
         )
 
         try:
-            ret = self._dispatchcommand(req) & 255
+            err = None
+            try:
+                status = self._dispatchcommand(req)
+            except error.StdioError as e:
+                status = -1
+                err = e
+
+            retval = dispatch.closestdio(req.ui, err)
+            if retval:
+                status = retval
+
+            ret = status & 255
             # If shutdown-on-interrupt is off, it's important to write the
             # result code *after* SIGINT handler removed. If the result code
             # were lost, the client wouldn't be able to continue processing.