Module: xenomai-2.6
Branch: master
Commit: de094a9e580511eb2dfdc0cee78bf92c959e2c55
URL:    
http://git.xenomai.org/?p=xenomai-2.6.git;a=commit;h=de094a9e580511eb2dfdc0cee78bf92c959e2c55

Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org>
Date:   Sun Jan 29 17:32:27 2012 +0100

posix: fix pthread_mutex_trylock in XNOTHER case

---

 src/skins/posix/mutex.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/skins/posix/mutex.c b/src/skins/posix/mutex.c
index a295b15..a08a30d 100644
--- a/src/skins/posix/mutex.c
+++ b/src/skins/posix/mutex.c
@@ -296,13 +296,9 @@ int __wrap_pthread_mutex_trylock(pthread_mutex_t *mutex)
        xnhandle_t cur;
 
        cur = xeno_get_current();
-       if (cur == XN_NO_HANDLE)
+       if (unlikely(cur == XN_NO_HANDLE))
                return EPERM;
 
-       status = xeno_get_current_mode();
-       if (unlikely(status & XNOTHER))
-               goto do_syscall;
-
        if (unlikely(cb_try_read_lock(&shadow->lock, s)))
                return EINVAL;
 
@@ -311,6 +307,10 @@ int __wrap_pthread_mutex_trylock(pthread_mutex_t *mutex)
                goto out;
        }
 
+       status = xeno_get_current_mode();
+       if (unlikely(status & XNOTHER))
+               goto do_syscall;
+
        if (unlikely(status & XNRELAX)) {
                do {
                        err = XENOMAI_SYSCALL1(__xn_sys_migrate,


_______________________________________________
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git

Reply via email to