From e4dcaa6ee9fd1328b682b693d8aee2920f1ef96e Mon Sep 17 00:00:00 2001 From: David Xu Date: Sat, 17 Jan 2004 03:09:57 +0000 Subject: Return EPERM if mutex owner is not current thread but it tries to unlock the mutex, old code confuses some programs when it returns EINVAL. Noticed by: bland --- lib/libkse/thread/thr_mutex.c | 21 +++------------------ lib/libpthread/thread/thr_mutex.c | 21 +++------------------ 2 files changed, 6 insertions(+), 36 deletions(-) (limited to 'lib') diff --git a/lib/libkse/thread/thr_mutex.c b/lib/libkse/thread/thr_mutex.c index 464bc39fe793..1232f33a181d 100644 --- a/lib/libkse/thread/thr_mutex.c +++ b/lib/libkse/thread/thr_mutex.c @@ -1001,12 +1001,7 @@ mutex_unlock_common(pthread_mutex_t *m, int add_reference) * mutex: */ if ((*m)->m_owner != curthread) - /* - * Return an invalid argument error for no - * owner and a permission error otherwise: - */ - ret = (*m)->m_owner == NULL ? EINVAL : EPERM; - + ret = EPERM; else if (((*m)->m_type == PTHREAD_MUTEX_RECURSIVE) && ((*m)->m_count > 0)) /* Decrement the count: */ @@ -1039,12 +1034,7 @@ mutex_unlock_common(pthread_mutex_t *m, int add_reference) * mutex: */ if ((*m)->m_owner != curthread) - /* - * Return an invalid argument error for no - * owner and a permission error otherwise: - */ - ret = (*m)->m_owner == NULL ? EINVAL : EPERM; - + ret = EPERM; else if (((*m)->m_type == PTHREAD_MUTEX_RECURSIVE) && ((*m)->m_count > 0)) /* Decrement the count: */ @@ -1096,12 +1086,7 @@ mutex_unlock_common(pthread_mutex_t *m, int add_reference) * mutex: */ if ((*m)->m_owner != curthread) - /* - * Return an invalid argument error for no - * owner and a permission error otherwise: - */ - ret = (*m)->m_owner == NULL ? EINVAL : EPERM; - + ret = EPERM; else if (((*m)->m_type == PTHREAD_MUTEX_RECURSIVE) && ((*m)->m_count > 0)) /* Decrement the count: */ diff --git a/lib/libpthread/thread/thr_mutex.c b/lib/libpthread/thread/thr_mutex.c index 464bc39fe793..1232f33a181d 100644 --- a/lib/libpthread/thread/thr_mutex.c +++ b/lib/libpthread/thread/thr_mutex.c @@ -1001,12 +1001,7 @@ mutex_unlock_common(pthread_mutex_t *m, int add_reference) * mutex: */ if ((*m)->m_owner != curthread) - /* - * Return an invalid argument error for no - * owner and a permission error otherwise: - */ - ret = (*m)->m_owner == NULL ? EINVAL : EPERM; - + ret = EPERM; else if (((*m)->m_type == PTHREAD_MUTEX_RECURSIVE) && ((*m)->m_count > 0)) /* Decrement the count: */ @@ -1039,12 +1034,7 @@ mutex_unlock_common(pthread_mutex_t *m, int add_reference) * mutex: */ if ((*m)->m_owner != curthread) - /* - * Return an invalid argument error for no - * owner and a permission error otherwise: - */ - ret = (*m)->m_owner == NULL ? EINVAL : EPERM; - + ret = EPERM; else if (((*m)->m_type == PTHREAD_MUTEX_RECURSIVE) && ((*m)->m_count > 0)) /* Decrement the count: */ @@ -1096,12 +1086,7 @@ mutex_unlock_common(pthread_mutex_t *m, int add_reference) * mutex: */ if ((*m)->m_owner != curthread) - /* - * Return an invalid argument error for no - * owner and a permission error otherwise: - */ - ret = (*m)->m_owner == NULL ? EINVAL : EPERM; - + ret = EPERM; else if (((*m)->m_type == PTHREAD_MUTEX_RECURSIVE) && ((*m)->m_count > 0)) /* Decrement the count: */ -- cgit v1.3