[PATCH] win32: close the handles associated with a spawned child process

Matt Harbison mharbison72 at gmail.com
Wed Dec 12 04:08:31 UTC 2018


# HG changeset patch
# User Matt Harbison <matt_harbison at yahoo.com>
# Date 1544583474 18000
#      Tue Dec 11 21:57:54 2018 -0500
# Node ID ec40f2ca8ac974ef657d4d52ac78019e75444911
# Parent  76d8b20139a3b8b5835c7262216b97275845b582
win32: close the handles associated with a spawned child process

Probably not a big deal because at this point, the call is only used when
spawning a daemonized server.  In that case, the parent process goes away first,
so it won't prevent the child from being cleaned up.

diff --git a/mercurial/win32.py b/mercurial/win32.py
--- a/mercurial/win32.py
+++ b/mercurial/win32.py
@@ -588,6 +588,9 @@ def spawndetached(args):
     if not res:
         raise ctypes.WinError()
 
+    _kernel32.CloseHandle(pi.hProcess)
+    _kernel32.CloseHandle(pi.hThread)
+
     return pi.dwProcessId
 
 def unlink(f):


More information about the Mercurial-devel mailing list