summaryrefslogtreecommitdiff
path: root/pthread_spin_destroy.c
diff options
context:
space:
mode:
authorrpj <rpj>2004-05-17 01:38:02 +0000
committerrpj <rpj>2004-05-17 01:38:02 +0000
commit771465fed0cf50ee2dd790723245fc091699c324 (patch)
treed8c18d095a33fe7c4564bd90c5f313bb9e4057dd /pthread_spin_destroy.c
parent8b14911744f58cbe3730703f3fcc41cd969fd0f3 (diff)
re-indentation, bug fixes, hooks for pre-emptive async cancelation
Diffstat (limited to 'pthread_spin_destroy.c')
-rw-r--r--pthread_spin_destroy.c65
1 files changed, 34 insertions, 31 deletions
diff --git a/pthread_spin_destroy.c b/pthread_spin_destroy.c
index bf32e6b..3347597 100644
--- a/pthread_spin_destroy.c
+++ b/pthread_spin_destroy.c
@@ -39,7 +39,7 @@
int
-pthread_spin_destroy(pthread_spinlock_t *lock)
+pthread_spin_destroy (pthread_spinlock_t * lock)
{
register pthread_spinlock_t s;
int result = 0;
@@ -52,16 +52,19 @@ pthread_spin_destroy(pthread_spinlock_t *lock)
if ((s = *lock) != PTHREAD_SPINLOCK_INITIALIZER)
{
if (s->interlock == PTW32_SPIN_USE_MUTEX)
- {
- result = pthread_mutex_destroy(&(s->u.mutex));
- }
- else if ( (PTW32_INTERLOCKED_LONG) PTW32_SPIN_UNLOCKED !=
- ptw32_interlocked_compare_exchange((PTW32_INTERLOCKED_LPLONG) &(s->interlock),
- (PTW32_INTERLOCKED_LONG) PTW32_OBJECT_INVALID,
- (PTW32_INTERLOCKED_LONG) PTW32_SPIN_UNLOCKED))
- {
- result = EINVAL;
- }
+ {
+ result = pthread_mutex_destroy (&(s->u.mutex));
+ }
+ else if ((PTW32_INTERLOCKED_LONG) PTW32_SPIN_UNLOCKED !=
+ ptw32_interlocked_compare_exchange ((PTW32_INTERLOCKED_LPLONG)
+ & (s->interlock),
+ (PTW32_INTERLOCKED_LONG)
+ PTW32_OBJECT_INVALID,
+ (PTW32_INTERLOCKED_LONG)
+ PTW32_SPIN_UNLOCKED))
+ {
+ result = EINVAL;
+ }
if (0 == result)
{
@@ -70,7 +73,7 @@ pthread_spin_destroy(pthread_spinlock_t *lock)
* have finished with the spinlock before destroying it.
*/
*lock = NULL;
- (void) free(s);
+ (void) free (s);
}
}
else
@@ -78,32 +81,32 @@ pthread_spin_destroy(pthread_spinlock_t *lock)
/*
* See notes in ptw32_spinlock_check_need_init() above also.
*/
- EnterCriticalSection(&ptw32_spinlock_test_init_lock);
+ EnterCriticalSection (&ptw32_spinlock_test_init_lock);
/*
* Check again.
*/
if (*lock == PTHREAD_SPINLOCK_INITIALIZER)
- {
- /*
- * This is all we need to do to destroy a statically
- * initialised spinlock that has not yet been used (initialised).
- * If we get to here, another thread
- * waiting to initialise this mutex will get an EINVAL.
- */
- *lock = NULL;
- }
+ {
+ /*
+ * This is all we need to do to destroy a statically
+ * initialised spinlock that has not yet been used (initialised).
+ * If we get to here, another thread
+ * waiting to initialise this mutex will get an EINVAL.
+ */
+ *lock = NULL;
+ }
else
- {
- /*
- * The spinlock has been initialised while we were waiting
- * so assume it's in use.
- */
- result = EBUSY;
- }
+ {
+ /*
+ * The spinlock has been initialised while we were waiting
+ * so assume it's in use.
+ */
+ result = EBUSY;
+ }
- LeaveCriticalSection(&ptw32_spinlock_test_init_lock);
+ LeaveCriticalSection (&ptw32_spinlock_test_init_lock);
}
- return(result);
+ return (result);
}