Hi,

no, this is not the fix for the issue I described earlier. This just
improves the behaviour of rt_task_delete in case the target is blocking
at a cancellation point (tested with standard sem_wait). With the
current version, rt_task_deletes the rt-shadow and just wakes up the
linux pthread even if the target is cancellable at that moment. With the
reordering, this is fixed and the target is actually terminated. No
major issue, though.

Jan
Index: src/skins/native/task.c
===================================================================
--- src/skins/native/task.c     (revision 243)
+++ src/skins/native/task.c     (working copy)
@@ -203,12 +203,18 @@
 int rt_task_delete (RT_TASK *task)
 
 {
-    int err = XENOMAI_SKINCALL1(__native_muxid,
-                               __native_task_delete,
-                               task);
-    if (!err)
-       pthread_cancel((pthread_t)task->opaque2);
+    int err;
 
+    err = pthread_cancel((pthread_t)task->opaque2)
+    if (err)
+        return -err;
+
+    err = XENOMAI_SKINCALL1(__native_muxid,
+                           __native_task_delete,
+                           task);
+    if (err == -ESRCH)
+       return 0;
+
     return err;
 }
 

Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to