diff options
author | rpj <rpj> | 2011-03-10 13:40:16 +0000 |
---|---|---|
committer | rpj <rpj> | 2011-03-10 13:40:16 +0000 |
commit | 6e3ac5c605d5062279178b3ea0b853d0e9cf7cc9 (patch) | |
tree | d9262f28ef4083dfeefbd31bc9b163cf67e102e1 /ptw32_processTerminate.c | |
parent | eb28d5aa00690b67cc27e4bd93d2c4c251987c85 (diff) |
Replace global Critical Sections with MCS Queue locks
Diffstat (limited to 'ptw32_processTerminate.c')
-rw-r--r-- | ptw32_processTerminate.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/ptw32_processTerminate.c b/ptw32_processTerminate.c index d2dfa7a..83f0f23 100644 --- a/ptw32_processTerminate.c +++ b/ptw32_processTerminate.c @@ -65,6 +65,7 @@ ptw32_processTerminate (void) if (ptw32_processInitialized) { ptw32_thread_t * tp, * tpNext; + ptw32_mcs_local_node_t node; if (ptw32_selfThreadKey != NULL) { @@ -86,7 +87,7 @@ ptw32_processTerminate (void) ptw32_cleanupKey = NULL; } - EnterCriticalSection (&ptw32_thread_reuse_lock); + ptw32_mcs_lock_acquire(&ptw32_thread_reuse_lock, &node); tp = ptw32_threadReuseTop; while (tp != PTW32_THREAD_REUSE_EMPTY) @@ -96,17 +97,7 @@ ptw32_processTerminate (void) tp = tpNext; } - LeaveCriticalSection (&ptw32_thread_reuse_lock); - - /* - * Destroy the global locks and other objects. - */ - DeleteCriticalSection (&ptw32_spinlock_test_init_lock); - DeleteCriticalSection (&ptw32_rwlock_test_init_lock); - DeleteCriticalSection (&ptw32_cond_test_init_lock); - DeleteCriticalSection (&ptw32_cond_list_lock); - DeleteCriticalSection (&ptw32_mutex_test_init_lock); - DeleteCriticalSection (&ptw32_thread_reuse_lock); + ptw32_mcs_lock_release(&node); ptw32_processInitialized = PTW32_FALSE; } |