summaryrefslogtreecommitdiff
path: root/threadproc/win32/proc.c
diff options
context:
space:
mode:
Diffstat (limited to 'threadproc/win32/proc.c')
-rw-r--r--threadproc/win32/proc.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/threadproc/win32/proc.c b/threadproc/win32/proc.c
index 9f13d6e7a..ed52f314b 100644
--- a/threadproc/win32/proc.c
+++ b/threadproc/win32/proc.c
@@ -699,7 +699,10 @@ APR_DECLARE(apr_status_t) apr_proc_wait_all_procs(apr_proc_t *proc,
apr_pool_t *p)
{
/* Unix does apr_proc_wait(proc(-1), exitcode, exitwhy, waithow)
- * but Win32's apr_proc_wait won't work that way.
+ * but Win32's apr_proc_wait won't work that way. We can either
+ * register all APR created processes in some sort of AsyncWait
+ * thread, or simply walk from the global process pool for all
+ * apr_pool_note_subprocess()es registered with APR.
*/
return APR_ENOTIMPL;
}
@@ -735,6 +738,8 @@ APR_DECLARE(apr_status_t) apr_proc_wait(apr_proc_t *proc,
*exitcode = stat;
if (exitwhy)
*exitwhy = why_from_exit_code(stat);
+ CloseHandle(proc->hproc);
+ proc->hproc = NULL;
return APR_CHILD_DONE;
}
}