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

Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org>
Date:   Sun Jan 13 13:51:22 2013 +0100

posix/native: do not increment resource counter for recursive mutexes

---

 ksrc/skins/native/mutex.c |    2 --
 ksrc/skins/posix/mutex.c  |    7 ++++---
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/ksrc/skins/native/mutex.c b/ksrc/skins/native/mutex.c
index a0761d6..9ee40f5 100644
--- a/ksrc/skins/native/mutex.c
+++ b/ksrc/skins/native/mutex.c
@@ -366,8 +366,6 @@ int rt_mutex_acquire_inner(RT_MUTEX *mutex, RTIME timeout,
        thread = xnpod_current_thread();
 
        if (xnsynch_owner_check(&mutex->synch_base, thread) == 0) {
-               if (xnthread_test_state(thread, XNOTHER))
-                       xnthread_inc_rescnt(thread);
                mutex->lockcnt++;
                return 0;
        }
diff --git a/ksrc/skins/posix/mutex.c b/ksrc/skins/posix/mutex.c
index 221ffb5..3414340 100644
--- a/ksrc/skins/posix/mutex.c
+++ b/ksrc/skins/posix/mutex.c
@@ -428,8 +428,11 @@ int pthread_mutex_trylock(pthread_mutex_t *mx)
        }
 #endif /* !CONFIG_XENO_FASTSYNCH */
 
-       if (likely(!err))
+       if (likely(!err)) {
+               if (xnthread_test_state(cur, XNOTHER) && !err)
+                       xnthread_inc_rescnt(cur);
                shadow->lockcnt = 1;
+       }
        else if (err == EBUSY) {
                pse51_mutex_t *mutex = shadow->mutex;
 
@@ -442,8 +445,6 @@ int pthread_mutex_trylock(pthread_mutex_t *mx)
                        }
                }
        }
-       if (xnthread_test_state(cur, XNOTHER) && !err)
-               xnthread_inc_rescnt(cur);
 
   unlock_and_return:
        cb_read_unlock(&shadow->lock, s);


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://www.xenomai.org/mailman/listinfo/xenomai-git

Reply via email to