Hi,
there's a typo in threadproc/win32/proc.c where it's leaving a
critical section when it should be entering and vice-versa. This
causes testall to hang when it starts to create processes (once it
gets to testflock).
There was a recent commit (r569890) which fixed a typo where the
critical section was entered twice but unfortunately the wrong "enter"
was changed to a "leave".
The attached (trivial) patch fixes the problem.
Cheers,
Steve.
diff -ru apr_20070831101610-orig/threadproc/win32/proc.c
apr_20070831101610/threadproc/win32/proc.c
--- apr_20070831101610-orig/threadproc/win32/proc.c Sun Aug 26 23:15:36 2007
+++ apr_20070831101610/threadproc/win32/proc.c Fri Aug 31 14:22:44 2007
@@ -767,7 +767,7 @@
/* LOCK CRITICAL SECTION
* before we begin to manipulate the inherited handles
*/
- LeaveCriticalSection(&proc_lock);
+ EnterCriticalSection(&proc_lock);
if ((attr->child_in && attr->child_in->filehand)
|| (attr->child_out && attr->child_out->filehand)
@@ -872,7 +872,7 @@
/* RELEASE CRITICAL SECTION
* The state of the inherited handles has been restored.
*/
- EnterCriticalSection(&proc_lock);
+ LeaveCriticalSection(&proc_lock);
#else /* defined(_WIN32_WCE) */
rv = CreateProcessW(wprg, wcmd, /* Executable & Command line */