diff options
-rw-r--r-- | CHANGES | 2 | ||||
-rw-r--r-- | threadproc/win32/thread.c | 4 |
2 files changed, 5 insertions, 1 deletions
@@ -266,6 +266,8 @@ Changes for APR 2.0.0 *) Fix double free on exit when apr_app is used on Windows. [Ivan Zhakov] + *) apr_thread_create: Fix potential race condition on Windows. [Ivan Zhakov] + Changes for APR and APR-util 1.7.x and later: *) http://svn.apache.org/viewvc/apr/apr/branches/1.7.x/CHANGES?view=markup diff --git a/threadproc/win32/thread.c b/threadproc/win32/thread.c index c49038361..0b672e698 100644 --- a/threadproc/win32/thread.c +++ b/threadproc/win32/thread.c @@ -157,17 +157,19 @@ APR_DECLARE(apr_status_t) apr_thread_create(apr_thread_t **new, if ((handle = (HANDLE)_beginthreadex(NULL, (DWORD) (attr ? attr->stacksize : 0), dummy_worker, - (*new), 0, &temp)) == 0) { + (*new), CREATE_SUSPENDED, &temp)) == 0) { stat = APR_FROM_OS_ERROR(_doserrno); apr_pool_destroy((*new)->pool); return stat; } if (attr && attr->detach) { + ResumeThread(handle); CloseHandle(handle); } else { (*new)->td = handle; + ResumeThread(handle); } return APR_SUCCESS; |