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

Author: Philippe Gerum <r...@xenomai.org>
Date:   Fri May 10 17:38:13 2013 +0200

copperplate/threadobj: keep the caller's lock around pthread_set_mode_np()

---

 lib/copperplate/threadobj.c |    8 ++------
 1 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/lib/copperplate/threadobj.c b/lib/copperplate/threadobj.c
index 2515569..da1c414 100644
--- a/lib/copperplate/threadobj.c
+++ b/lib/copperplate/threadobj.c
@@ -247,7 +247,7 @@ int threadobj_set_priority(struct threadobj *thobj, int 
prio) /* thobj->lock hel
 int threadobj_set_mode(int clrmask, int setmask, int *mode_r) /* current->lock 
held */
 {
        struct threadobj *current = threadobj_current();
-       int ret, __clrmask = 0, __setmask = 0;
+       int __clrmask = 0, __setmask = 0;
 
        __threadobj_check_locked(current);
 
@@ -266,11 +266,7 @@ int threadobj_set_mode(int clrmask, int setmask, int 
*mode_r) /* current->lock h
        else if (clrmask & __THREAD_M_CONFORMING)
                __clrmask |= PTHREAD_CONFORMING;
 
-       threadobj_unlock(current);
-       ret = pthread_set_mode_np(__clrmask, __setmask, mode_r);
-       threadobj_lock(current);
-
-       return ret;
+       return __bt(pthread_set_mode_np(__clrmask, __setmask, mode_r));
 }
 
 static int set_rr(struct threadobj *thobj, struct timespec *quantum)


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

Reply via email to