Index: fusl/src/thread/pthread_mutex_unlock.c |
diff --git a/fusl/src/thread/pthread_mutex_unlock.c b/fusl/src/thread/pthread_mutex_unlock.c |
index 02da92a96b0b83f44b31ee91803fd74af70ecc6f..d80fde0e822433425908e60cebdc9550cc6df9dc 100644 |
--- a/fusl/src/thread/pthread_mutex_unlock.c |
+++ b/fusl/src/thread/pthread_mutex_unlock.c |
@@ -1,37 +1,36 @@ |
#include "pthread_impl.h" |
-int __pthread_mutex_unlock(pthread_mutex_t *m) |
-{ |
- pthread_t self; |
- int waiters = m->_m_waiters; |
- int cont; |
- int type = m->_m_type & 15; |
- int priv = (m->_m_type & 128) ^ 128; |
+int __pthread_mutex_unlock(pthread_mutex_t* m) { |
+ pthread_t self; |
+ int waiters = m->_m_waiters; |
+ int cont; |
+ int type = m->_m_type & 15; |
+ int priv = (m->_m_type & 128) ^ 128; |
- if (type != PTHREAD_MUTEX_NORMAL) { |
- self = __pthread_self(); |
- if ((m->_m_lock&0x7fffffff) != self->tid) |
- return EPERM; |
- if ((type&3) == PTHREAD_MUTEX_RECURSIVE && m->_m_count) |
- return m->_m_count--, 0; |
- if (!priv) { |
- self->robust_list.pending = &m->_m_next; |
- __vm_lock(); |
- } |
- volatile void *prev = m->_m_prev; |
- volatile void *next = m->_m_next; |
- *(volatile void *volatile *)prev = next; |
- if (next != &self->robust_list.head) *(volatile void *volatile *) |
- ((char *)next - sizeof(void *)) = prev; |
- } |
- cont = a_swap(&m->_m_lock, (type & 8) ? 0x40000000 : 0); |
- if (type != PTHREAD_MUTEX_NORMAL && !priv) { |
- self->robust_list.pending = 0; |
- __vm_unlock(); |
- } |
- if (waiters || cont<0) |
- __wake(&m->_m_lock, 1, priv); |
- return 0; |
+ if (type != PTHREAD_MUTEX_NORMAL) { |
+ self = __pthread_self(); |
+ if ((m->_m_lock & 0x7fffffff) != self->tid) |
+ return EPERM; |
+ if ((type & 3) == PTHREAD_MUTEX_RECURSIVE && m->_m_count) |
+ return m->_m_count--, 0; |
+ if (!priv) { |
+ self->robust_list.pending = &m->_m_next; |
+ __vm_lock(); |
+ } |
+ volatile void* prev = m->_m_prev; |
+ volatile void* next = m->_m_next; |
+ *(volatile void* volatile*)prev = next; |
+ if (next != &self->robust_list.head) |
+ *(volatile void* volatile*)((char*)next - sizeof(void*)) = prev; |
+ } |
+ cont = a_swap(&m->_m_lock, (type & 8) ? 0x40000000 : 0); |
+ if (type != PTHREAD_MUTEX_NORMAL && !priv) { |
+ self->robust_list.pending = 0; |
+ __vm_unlock(); |
+ } |
+ if (waiters || cont < 0) |
+ __wake(&m->_m_lock, 1, priv); |
+ return 0; |
} |
weak_alias(__pthread_mutex_unlock, pthread_mutex_unlock); |