mercurial/utils/procutil.py
changeset 48488 f8540fe4be0f
parent 48487 333a2656e981
child 48875 6000f5b25c9b
child 49068 90e564882f07
--- a/mercurial/utils/procutil.py	Tue Dec 14 17:25:46 2021 -0500
+++ b/mercurial/utils/procutil.py	Tue Dec 14 17:29:30 2021 -0500
@@ -742,6 +742,8 @@
             start_new_session = False
             ensurestart = True
 
+        stdin = None
+
         try:
             if stdin_bytes is None:
                 stdin = subprocess.DEVNULL
@@ -770,7 +772,7 @@
                 record_wait(255)
             raise
         finally:
-            if stdin_bytes is not None:
+            if stdin_bytes is not None and stdin is not None:
                 assert not isinstance(stdin, int)
                 stdin.close()
         if not ensurestart:
@@ -852,6 +854,8 @@
                 return
 
         returncode = 255
+        stdin = None
+
         try:
             if record_wait is None:
                 # Start a new session
@@ -894,7 +898,8 @@
         finally:
             # mission accomplished, this child needs to exit and not
             # continue the hg process here.
-            stdin.close()
+            if stdin is not None:
+                stdin.close()
             if record_wait is None:
                 os._exit(returncode)