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

Author: Philippe Gerum <r...@xenomai.org>
Date:   Wed Aug  6 07:43:45 2014 +0200

copperplate/threadobj: factor out magic word invalidation

---

 lib/alchemy/task.c          |    6 ------
 lib/copperplate/threadobj.c |    1 +
 lib/psos/task.c             |    6 ------
 lib/vxworks/taskLib.c       |    6 ------
 4 files changed, 1 insertion(+), 18 deletions(-)

diff --git a/lib/alchemy/task.c b/lib/alchemy/task.c
index 7acdee0..040409f 100644
--- a/lib/alchemy/task.c
+++ b/lib/alchemy/task.c
@@ -236,12 +236,6 @@ static void *task_entry(void *arg)
 
        tcb->entry(tcb->arg);
 
-       CANCEL_DEFER(svc);
-       threadobj_lock(&tcb->thobj);
-       threadobj_set_magic(&tcb->thobj, ~task_magic);
-       threadobj_unlock(&tcb->thobj);
-       CANCEL_RESTORE(svc);
-
        return NULL;
 }
 
diff --git a/lib/copperplate/threadobj.c b/lib/copperplate/threadobj.c
index f3780df..bccf306 100644
--- a/lib/copperplate/threadobj.c
+++ b/lib/copperplate/threadobj.c
@@ -1318,6 +1318,7 @@ static void finalize_thread(void *p) /* thobj->lock free 
*/
        if (thobj == NULL || thobj == THREADOBJ_IRQCONTEXT)
                return;
 
+       thobj->magic = ~thobj->magic;
        pthread_setcanceltype(PTHREAD_CANCEL_DEFERRED, NULL);
        threadobj_set_current(p);
        thobj->pid = 0;
diff --git a/lib/psos/task.c b/lib/psos/task.c
index 2c0cbca..ea122c0 100644
--- a/lib/psos/task.c
+++ b/lib/psos/task.c
@@ -204,12 +204,6 @@ static void *task_trampoline(void *arg)
 
        args->entry(args->arg0, args->arg1, args->arg2, args->arg3);
 
-       CANCEL_DEFER(svc);
-       threadobj_lock(&task->thobj);
-       threadobj_set_magic(&task->thobj, ~task_magic);
-       threadobj_unlock(&task->thobj);
-       CANCEL_RESTORE(svc);
-
        return NULL;
 }
 
diff --git a/lib/vxworks/taskLib.c b/lib/vxworks/taskLib.c
index 946e58d..6492d62 100644
--- a/lib/vxworks/taskLib.c
+++ b/lib/vxworks/taskLib.c
@@ -276,12 +276,6 @@ static void *task_trampoline(void *arg)
                    args->arg4, args->arg5, args->arg6, args->arg7,
                    args->arg8, args->arg9);
 
-       CANCEL_DEFER(svc);
-       threadobj_lock(&task->thobj);
-       threadobj_set_magic(&task->thobj, ~task_magic);
-       threadobj_unlock(&task->thobj);
-       CANCEL_RESTORE(svc);
-
        return NULL;
 }
 


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

Reply via email to