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 */

Reply via email to