summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/src/mutextrylock.c
diff options
context:
space:
mode:
authorGedare Bloom <gedare@rtems.org>2015-02-24 10:27:08 -0500
committerGedare Bloom <gedare@rtems.org>2015-02-25 15:00:41 -0500
commitc0e01a28dad77063d8edb7f7fe2cee83a5f09b2e (patch)
tree0bd42e474de34b2432828be90c00c766c2015e07 /cpukit/posix/src/mutextrylock.c
parentPanic on RTEMS_FAST_MUTEX network semaphore claim/release. (diff)
downloadrtems-c0e01a28dad77063d8edb7f7fe2cee83a5f09b2e.tar.bz2
posix: fix error return code for pthread_mutex_trylock
pthread_mutex_trylock() should return EBUSY if the mutex is already locked. The translations of CORE_MUTEX_STATUS_NESTING_NOT_ALLOWED is EDEADLK which is correct for pthread_mutex_lock(). This fixes the translation for trylock. Closes #2170.
Diffstat (limited to 'cpukit/posix/src/mutextrylock.c')
-rw-r--r--cpukit/posix/src/mutextrylock.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/cpukit/posix/src/mutextrylock.c b/cpukit/posix/src/mutextrylock.c
index b6e79cdaa2..332f486b49 100644
--- a/cpukit/posix/src/mutextrylock.c
+++ b/cpukit/posix/src/mutextrylock.c
@@ -37,5 +37,8 @@ int pthread_mutex_trylock(
pthread_mutex_t *mutex
)
{
- return _POSIX_Mutex_Lock_support( mutex, false, THREAD_QUEUE_WAIT_FOREVER );
+ int r = _POSIX_Mutex_Lock_support( mutex, false, THREAD_QUEUE_WAIT_FOREVER );
+ if ( r == EDEADLK )
+ r = EBUSY;
+ return r;
}