diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-04-14 14:39:57 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-04-14 14:39:57 -0400 |
commit | ec2e50d0d78fb19c4a0b6f3e1d394408860425b4 (patch) | |
tree | 05e58ed47255af3d2ca00a504d3318c1d4fa4f37 | |
parent | 016a5dc1925a66c7d1ffc14b862b1342f399cfda (diff) | |
download | musl-ec2e50d0d78fb19c4a0b6f3e1d394408860425b4.tar.gz |
cheap trick to further optimize locking normal mutexes
-rw-r--r-- | src/thread/pthread_mutex_lock.c | 2 | ||||
-rw-r--r-- | src/thread/pthread_mutex_trylock.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/thread/pthread_mutex_lock.c b/src/thread/pthread_mutex_lock.c index 87b19752..99c15bd8 100644 --- a/src/thread/pthread_mutex_lock.c +++ b/src/thread/pthread_mutex_lock.c @@ -4,7 +4,7 @@ int pthread_mutex_lock(pthread_mutex_t *m) { int r; - if (m->_m_type == PTHREAD_MUTEX_NORMAL && !a_swap(&m->_m_lock, 1)) + if (m->_m_type == PTHREAD_MUTEX_NORMAL && !a_swap(&m->_m_lock, EBUSY)) return 0; while ((r=pthread_mutex_trylock(m)) == EBUSY) { diff --git a/src/thread/pthread_mutex_trylock.c b/src/thread/pthread_mutex_trylock.c index 50a815a5..ea1fa805 100644 --- a/src/thread/pthread_mutex_trylock.c +++ b/src/thread/pthread_mutex_trylock.c @@ -7,7 +7,7 @@ int pthread_mutex_trylock(pthread_mutex_t *m) pthread_t self; if (m->_m_type == PTHREAD_MUTEX_NORMAL) - return -a_swap(&m->_m_lock, 1) & EBUSY; + return a_swap(&m->_m_lock, EBUSY); self = pthread_self(); tid = self->tid | 0x80000000; |