summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/thread/pthread_mutex_trylock.c2
-rw-r--r--src/thread/pthread_mutex_unlock.c4
2 files changed, 2 insertions, 4 deletions
diff --git a/src/thread/pthread_mutex_trylock.c b/src/thread/pthread_mutex_trylock.c
index 4a424bc9..fb277970 100644
--- a/src/thread/pthread_mutex_trylock.c
+++ b/src/thread/pthread_mutex_trylock.c
@@ -30,8 +30,6 @@ int pthread_mutex_trylock(pthread_mutex_t *m)
if ((own && !(own & 0x40000000)) || a_cas(&m->_m_lock, old, tid)!=old)
return EBUSY;
- m->_m_count = 1;
-
if (m->_m_type < 4) return 0;
if (m->_m_type >= 8) {
diff --git a/src/thread/pthread_mutex_unlock.c b/src/thread/pthread_mutex_unlock.c
index 0f4a5e6c..05baec18 100644
--- a/src/thread/pthread_mutex_unlock.c
+++ b/src/thread/pthread_mutex_unlock.c
@@ -12,8 +12,8 @@ int pthread_mutex_unlock(pthread_mutex_t *m)
self = __pthread_self();
if ((m->_m_lock&0x1fffffff) != self->tid)
return EPERM;
- if ((m->_m_type&3) == PTHREAD_MUTEX_RECURSIVE && --m->_m_count)
- return 0;
+ if ((m->_m_type&3) == PTHREAD_MUTEX_RECURSIVE && m->_m_count)
+ return m->_m_count--, 0;
if (m->_m_type >= 4) {
self->robust_list.pending = &m->_m_next;
*(void **)m->_m_prev = m->_m_next;