--- a/drivers/timers_xeno/timers_xeno.c Wed May 07 17:06:20 2008 +0200
+++ b/drivers/timers_xeno/timers_xeno.c Fri May 09 09:47:56 2008 +0200
@@ -66,6 +66,9 @@
void cleanup_all(void)
{
+ if (rt_task_join(&timerloop_task) != 0){
+ printf("Failed to join with Timerloop task\n");
+ }
rt_task_delete(&timerloop_task);
}
@@ -78,6 +81,9 @@
rt_mutex_delete(&condition_mutex);
rt_cond_delete(&timer_set);
rt_sem_delete(&control_task);
+ if (rt_task_join(&timerloop_task) != 0){
+ printf("Failed to join with Timerloop task\n");
+ }
rt_task_delete(&timerloop_task);
}
@@ -165,7 +171,7 @@
snprintf(taskname, sizeof(taskname), "timerloop-%d", getpid());
/* create timerloop_task */
- ret = rt_task_create(&timerloop_task, taskname, 0, 50, 0);
+ ret = rt_task_create(&timerloop_task, taskname, 0, 50, T_JOINABLE);
if (ret) {
printf("Failed to create timerloop_task, code %d\n",errno);
return;
@@ -199,7 +205,7 @@
id++;
/* create ReceiveLoop_task */
- ret = rt_task_create(ReceiveLoop_task,taskname,0,50,0);
+ ret = rt_task_create(ReceiveLoop_task,taskname,0,50,T_JOINABLE);
if (ret) {
printf("Failed to create ReceiveLoop_task number %d, code %d\n", id, errno);
return;
@@ -219,6 +225,9 @@
*/
void WaitReceiveTaskEnd(TASK_HANDLE *ReceiveLoop_task)
{
+ if (rt_task_join(ReceiveLoop_task) != 0){
+ printf("Failed to join with Receive task\n");
+ }
rt_task_delete(ReceiveLoop_task);
}