summaryrefslogtreecommitdiff
path: root/pthread_win32_attach_detach_np.c
diff options
context:
space:
mode:
authorrpj <rpj>2004-11-03 01:08:41 +0000
committerrpj <rpj>2004-11-03 01:08:41 +0000
commitec8290acdaea21b16d98f1ef5d4ae8a28ab2109a (patch)
tree0bd3750ec1cc12594b6cfe69473e393da6ec101b /pthread_win32_attach_detach_np.c
parentcccaf0c2c82e78a72d69a4a50c872f308bed2f65 (diff)
Mutex, semaphore, thread ID, test suite changes - see ChangeLogs
Diffstat (limited to 'pthread_win32_attach_detach_np.c')
-rw-r--r--pthread_win32_attach_detach_np.c46
1 files changed, 22 insertions, 24 deletions
diff --git a/pthread_win32_attach_detach_np.c b/pthread_win32_attach_detach_np.c
index 4aedccc..6fd7f27 100644
--- a/pthread_win32_attach_detach_np.c
+++ b/pthread_win32_attach_detach_np.c
@@ -92,8 +92,6 @@ pthread_win32_process_attach_np ()
#endif
-#ifndef TEST_ICE
-
/*
* Load KERNEL32 and try to get address of InterlockedCompareExchange
*/
@@ -136,12 +134,6 @@ pthread_win32_process_attach_np ()
ptw32_features |= PTW32_SYSTEM_INTERLOCKED_COMPARE_EXCHANGE;
}
-#else /* TEST_ICE */
-
- ptw32_interlocked_compare_exchange = ptw32_InterlockedCompareExchange;
-
-#endif /* TEST_ICE */
-
/*
* Load QUSEREX.DLL and try to get address of QueueUserAPCEx
*/
@@ -204,16 +196,19 @@ pthread_win32_process_detach_np ()
{
if (ptw32_processInitialized)
{
- pthread_t self = (pthread_t) pthread_getspecific (ptw32_selfThreadKey);
+ ptw32_thread_t * sp = (ptw32_thread_t *) pthread_getspecific (ptw32_selfThreadKey);
- /*
- * Detached threads have their resources automatically
- * cleaned up upon exit (others must be 'joined').
- */
- if (self != NULL && self->detachState == PTHREAD_CREATE_DETACHED)
+ if (sp != NULL)
{
- ptw32_threadDestroy (self);
- TlsSetValue (ptw32_selfThreadKey->key, NULL);
+ /*
+ * Detached threads have their resources automatically
+ * cleaned up upon exit (others must be 'joined').
+ */
+ if (sp->detachState == PTHREAD_CREATE_DETACHED)
+ {
+ ptw32_threadDestroy (sp->ptHandle);
+ TlsSetValue (ptw32_selfThreadKey->key, NULL);
+ }
}
/*
@@ -265,16 +260,19 @@ pthread_win32_thread_detach_np ()
* Don't use pthread_self() - to avoid creating an implicit POSIX thread handle
* unnecessarily.
*/
- pthread_t self = (pthread_t) pthread_getspecific (ptw32_selfThreadKey);
+ ptw32_thread_t * sp = (ptw32_thread_t *) pthread_getspecific (ptw32_selfThreadKey);
- /*
- * Detached threads have their resources automatically
- * cleaned up upon exit (others must be 'joined').
- */
- if (self != NULL && self->detachState == PTHREAD_CREATE_DETACHED)
+ if (sp != NULL)
{
- ptw32_threadDestroy (self);
- TlsSetValue (ptw32_selfThreadKey->key, NULL);
+ /*
+ * Detached threads have their resources automatically
+ * cleaned up upon exit (others must be 'joined').
+ */
+ if (sp->detachState == PTHREAD_CREATE_DETACHED)
+ {
+ ptw32_threadDestroy (sp->ptHandle);
+ TlsSetValue (ptw32_selfThreadKey->key, NULL);
+ }
}
}