diff options
author | rpj <rpj> | 2004-05-17 01:38:02 +0000 |
---|---|---|
committer | rpj <rpj> | 2004-05-17 01:38:02 +0000 |
commit | 771465fed0cf50ee2dd790723245fc091699c324 (patch) | |
tree | d8c18d095a33fe7c4564bd90c5f313bb9e4057dd /pthread_spin_trylock.c | |
parent | 8b14911744f58cbe3730703f3fcc41cd969fd0f3 (diff) |
re-indentation, bug fixes, hooks for pre-emptive async cancelation
Diffstat (limited to 'pthread_spin_trylock.c')
-rw-r--r-- | pthread_spin_trylock.c | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/pthread_spin_trylock.c b/pthread_spin_trylock.c index c54fe53..040a2b0 100644 --- a/pthread_spin_trylock.c +++ b/pthread_spin_trylock.c @@ -39,34 +39,41 @@ int -pthread_spin_trylock(pthread_spinlock_t *lock) +pthread_spin_trylock (pthread_spinlock_t * lock) { register pthread_spinlock_t s; if (NULL == lock || NULL == *lock) { - return(EINVAL); + return (EINVAL); } if (*lock == PTHREAD_SPINLOCK_INITIALIZER) { int result; - if ((result = ptw32_spinlock_check_need_init(lock)) != 0) - { - return(result); - } + if ((result = ptw32_spinlock_check_need_init (lock)) != 0) + { + return (result); + } } s = *lock; - switch ((long) ptw32_interlocked_compare_exchange((PTW32_INTERLOCKED_LPLONG) &(s->interlock), - (PTW32_INTERLOCKED_LONG) PTW32_SPIN_LOCKED, - (PTW32_INTERLOCKED_LONG) PTW32_SPIN_UNLOCKED )) + switch ((long) + ptw32_interlocked_compare_exchange ((PTW32_INTERLOCKED_LPLONG) & + (s->interlock), + (PTW32_INTERLOCKED_LONG) + PTW32_SPIN_LOCKED, + (PTW32_INTERLOCKED_LONG) + PTW32_SPIN_UNLOCKED)) { - case PTW32_SPIN_UNLOCKED: return 0; - case PTW32_SPIN_LOCKED: return EBUSY; - case PTW32_SPIN_USE_MUTEX: return pthread_mutex_trylock(&(s->u.mutex)); + case PTW32_SPIN_UNLOCKED: + return 0; + case PTW32_SPIN_LOCKED: + return EBUSY; + case PTW32_SPIN_USE_MUTEX: + return pthread_mutex_trylock (&(s->u.mutex)); } return EINVAL; |