From 1e0bb8a09c86d144f3779bc4d5724afe3f637922 Mon Sep 17 00:00:00 2001 From: rpj Date: Fri, 1 Jul 2011 00:51:56 +0000 Subject: Redo Interlocked macros; see the ChangeLog --- pthread_mutex_lock.c | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) (limited to 'pthread_mutex_lock.c') diff --git a/pthread_mutex_lock.c b/pthread_mutex_lock.c index f6bdcbd..b54e155 100644 --- a/pthread_mutex_lock.c +++ b/pthread_mutex_lock.c @@ -77,13 +77,13 @@ pthread_mutex_lock (pthread_mutex_t * mutex) /* Non-robust */ if (PTHREAD_MUTEX_NORMAL == kind) { - if ((PTW32_INTERLOCKED_VALUE) PTW32_INTERLOCKED_EXCHANGE( + if ((PTW32_INTERLOCKED_LONG) PTW32_INTERLOCKED_EXCHANGE_LONG( (PTW32_INTERLOCKED_PTR) &mx->lock_idx, - (PTW32_INTERLOCKED_VALUE) 1) != 0) + (PTW32_INTERLOCKED_LONG) 1) != 0) { - while ((PTW32_INTERLOCKED_VALUE) PTW32_INTERLOCKED_EXCHANGE( + while ((PTW32_INTERLOCKED_LONG) PTW32_INTERLOCKED_EXCHANGE_LONG( (PTW32_INTERLOCKED_PTR) &mx->lock_idx, - (PTW32_INTERLOCKED_VALUE) -1) != 0) + (PTW32_INTERLOCKED_LONG) -1) != 0) { if (WAIT_OBJECT_0 != WaitForSingleObject (mx->event, INFINITE)) { @@ -97,10 +97,10 @@ pthread_mutex_lock (pthread_mutex_t * mutex) { pthread_t self = pthread_self(); - if ((PTW32_INTERLOCKED_VALUE) PTW32_INTERLOCKED_COMPARE_EXCHANGE( + if ((PTW32_INTERLOCKED_LONG) PTW32_INTERLOCKED_COMPARE_EXCHANGE_LONG( (PTW32_INTERLOCKED_PTR) &mx->lock_idx, - (PTW32_INTERLOCKED_VALUE) 1, - (PTW32_INTERLOCKED_VALUE) 0) == 0) + (PTW32_INTERLOCKED_LONG) 1, + (PTW32_INTERLOCKED_LONG) 0) == 0) { mx->recursive_count = 1; mx->ownerThread = self; @@ -120,9 +120,9 @@ pthread_mutex_lock (pthread_mutex_t * mutex) } else { - while ((PTW32_INTERLOCKED_VALUE) PTW32_INTERLOCKED_EXCHANGE( + while ((PTW32_INTERLOCKED_LONG) PTW32_INTERLOCKED_EXCHANGE_LONG( (PTW32_INTERLOCKED_PTR) &mx->lock_idx, - (PTW32_INTERLOCKED_VALUE) -1) != 0) + (PTW32_INTERLOCKED_LONG) -1) != 0) { if (WAIT_OBJECT_0 != WaitForSingleObject (mx->event, INFINITE)) { @@ -149,9 +149,9 @@ pthread_mutex_lock (pthread_mutex_t * mutex) */ ptw32_robust_state_t* statePtr = &mx->robustNode->stateInconsistent; - if ((PTW32_INTERLOCKED_VALUE)PTW32_ROBUST_NOTRECOVERABLE == PTW32_INTERLOCKED_EXCHANGE_ADD( + if ((PTW32_INTERLOCKED_LONG)PTW32_ROBUST_NOTRECOVERABLE == PTW32_INTERLOCKED_EXCHANGE_ADD_LONG( (PTW32_INTERLOCKED_PTR)statePtr, - (PTW32_INTERLOCKED_VALUE)0)) + (PTW32_INTERLOCKED_LONG)0)) { result = ENOTRECOVERABLE; } @@ -163,24 +163,24 @@ pthread_mutex_lock (pthread_mutex_t * mutex) if (PTHREAD_MUTEX_NORMAL == kind) { - if ((PTW32_INTERLOCKED_VALUE) PTW32_INTERLOCKED_EXCHANGE( + if ((PTW32_INTERLOCKED_LONG) PTW32_INTERLOCKED_EXCHANGE_LONG( (PTW32_INTERLOCKED_PTR) &mx->lock_idx, - (PTW32_INTERLOCKED_VALUE) 1) != 0) + (PTW32_INTERLOCKED_LONG) 1) != 0) { while (0 == (result = ptw32_robust_mutex_inherit(mutex)) - && (PTW32_INTERLOCKED_VALUE) PTW32_INTERLOCKED_EXCHANGE( + && (PTW32_INTERLOCKED_LONG) PTW32_INTERLOCKED_EXCHANGE_LONG( (PTW32_INTERLOCKED_PTR) &mx->lock_idx, - (PTW32_INTERLOCKED_VALUE) -1) != 0) + (PTW32_INTERLOCKED_LONG) -1) != 0) { if (WAIT_OBJECT_0 != WaitForSingleObject (mx->event, INFINITE)) { result = EINVAL; break; } - if ((PTW32_INTERLOCKED_VALUE)PTW32_ROBUST_NOTRECOVERABLE == - PTW32_INTERLOCKED_EXCHANGE_ADD( + if ((PTW32_INTERLOCKED_LONG)PTW32_ROBUST_NOTRECOVERABLE == + PTW32_INTERLOCKED_EXCHANGE_ADD_LONG( (PTW32_INTERLOCKED_PTR)statePtr, - (PTW32_INTERLOCKED_VALUE)0)) + (PTW32_INTERLOCKED_LONG)0)) { /* Unblock the next thread */ SetEvent(mx->event); @@ -200,10 +200,10 @@ pthread_mutex_lock (pthread_mutex_t * mutex) } else { - if ((PTW32_INTERLOCKED_VALUE) PTW32_INTERLOCKED_COMPARE_EXCHANGE( + if ((PTW32_INTERLOCKED_LONG) PTW32_INTERLOCKED_COMPARE_EXCHANGE_LONG( (PTW32_INTERLOCKED_PTR) &mx->lock_idx, - (PTW32_INTERLOCKED_VALUE) 1, - (PTW32_INTERLOCKED_VALUE) 0) == 0) + (PTW32_INTERLOCKED_LONG) 1, + (PTW32_INTERLOCKED_LONG) 0) == 0) { mx->recursive_count = 1; /* @@ -228,19 +228,19 @@ pthread_mutex_lock (pthread_mutex_t * mutex) else { while (0 == (result = ptw32_robust_mutex_inherit(mutex)) - && (PTW32_INTERLOCKED_VALUE) PTW32_INTERLOCKED_EXCHANGE( + && (PTW32_INTERLOCKED_LONG) PTW32_INTERLOCKED_EXCHANGE_LONG( (PTW32_INTERLOCKED_PTR) &mx->lock_idx, - (PTW32_INTERLOCKED_VALUE) -1) != 0) + (PTW32_INTERLOCKED_LONG) -1) != 0) { if (WAIT_OBJECT_0 != WaitForSingleObject (mx->event, INFINITE)) { result = EINVAL; break; } - if ((PTW32_INTERLOCKED_VALUE)PTW32_ROBUST_NOTRECOVERABLE == - PTW32_INTERLOCKED_EXCHANGE_ADD( + if ((PTW32_INTERLOCKED_LONG)PTW32_ROBUST_NOTRECOVERABLE == + PTW32_INTERLOCKED_EXCHANGE_ADD_LONG( (PTW32_INTERLOCKED_PTR)statePtr, - (PTW32_INTERLOCKED_VALUE)0)) + (PTW32_INTERLOCKED_LONG)0)) { /* Unblock the next thread */ SetEvent(mx->event); -- cgit v1.2.3