summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorwrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68>2002-11-25 05:06:31 +0000
committerwrowe <wrowe@13f79535-47bb-0310-9956-ffa450edef68>2002-11-25 05:06:31 +0000
commite03f60f74126bdc791a517dd4be3784f7ba123c4 (patch)
treeb1cb5f9f325fe1ca38da3591c23a7ab31fc0c6f2 /misc
parentf1a24cb946b343f6bbe84aea815670c40d3223b7 (diff)
downloadlibapr-e03f60f74126bdc791a517dd4be3784f7ba123c4.tar.gz
As pointed out by Marcel Mann <Marcel.Mann@dbaudio.com>, we were
returning 0xfffffffe (the pseudo-handle) for the current thread. Stash the real apr_thread_t and recover it for apr_os_thread_current(). We were also missing thread_compare so I dropped that in while I was at it. The test is simple with the above behavior. git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@64085 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'misc')
-rw-r--r--misc/win32/start.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/misc/win32/start.c b/misc/win32/start.c
index e81e87c26..df2ff70fe 100644
--- a/misc/win32/start.c
+++ b/misc/win32/start.c
@@ -195,6 +195,9 @@ APR_DECLARE(apr_status_t) apr_app_initialize(int *argc,
static int initialized = 0;
+/* Provide to win32/thread.c */
+extern DWORD tls_apr_thread;
+
APR_DECLARE(apr_status_t) apr_initialize(void)
{
apr_pool_t *pool;
@@ -213,6 +216,7 @@ APR_DECLARE(apr_status_t) apr_initialize(void)
return APR_EEXIST;
}
+ tls_apr_thread = TlsAlloc();
if ((status = apr_pool_initialize()) != APR_SUCCESS)
return status;
@@ -247,6 +251,8 @@ APR_DECLARE_NONSTD(void) apr_terminate(void)
apr_pool_terminate();
WSACleanup();
+
+ TlsFree(tls_apr_thread);
}
APR_DECLARE(void) apr_terminate2(void)