summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2011-04-14 14:39:57 -0400
committerRich Felker <dalias@aerifal.cx>2011-04-14 14:39:57 -0400
commitec2e50d0d78fb19c4a0b6f3e1d394408860425b4 (patch)
tree05e58ed47255af3d2ca00a504d3318c1d4fa4f37
parent016a5dc1925a66c7d1ffc14b862b1342f399cfda (diff)
downloadmusl-ec2e50d0d78fb19c4a0b6f3e1d394408860425b4.tar.gz
musl-ec2e50d0d78fb19c4a0b6f3e1d394408860425b4.tar.bz2
musl-ec2e50d0d78fb19c4a0b6f3e1d394408860425b4.tar.xz
musl-ec2e50d0d78fb19c4a0b6f3e1d394408860425b4.zip
cheap trick to further optimize locking normal mutexes
-rw-r--r--src/thread/pthread_mutex_lock.c2
-rw-r--r--src/thread/pthread_mutex_trylock.c2
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;