With the following program:

#include <sys/mman.h>
#include <native/task.h>
#include <native/timer.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>



static void child(void *arg)
{
  int n = (int)arg;

  printf("start %d, ", n); fflush(stdout);
  rt_task_sleep(100000000L);
  printf("exit %d, ", n); fflush(stdout);
}

int main(int argc, char *argv[])
{
  int i;
  RT_TASK task_main;
  RT_TASK task;

  mlockall(MCL_CURRENT|MCL_FUTURE);
  rt_task_shadow(&task_main, NULL, 1, T_FPU);

  for  (i = 20 ; i > 0 ; i--) {
    if (rt_task_create(&task, NULL, 0, 1, 0)) {
      fprintf(stderr, "Failed to create  task\n");
      exit(1);
    }
    if (rt_task_start(&task, &child, (void*)i)) {
      fprintf(stderr, "Failed to start task\n");
      exit(1);
    }
    rt_task_sleep(1000000 + 10000000L * i);
    printf("delete %d\n", i);
    rt_task_delete(&task);
  }
  exit(0);
}

I get this output:

start 20, exit 20, delete 20
start 19, exit 19, delete 19
start 18, exit 18, delete 18
start 17, exit 17, delete 17
start 16, exit 16, delete 16
start 15, exit 15, delete 15
start 14, exit 14, delete 14
start 13, exit 13, delete 13
start 12, exit 12, delete 12
start 11, exit 11, delete 11
start 10, exit 10, delete 10
start 9, delete 9
Killed

i.e. rt_task_delete of a [still] running task kills the main program. Is this
the expected behaviour? Versions are still:

# uname -r ; cat /proc/xenomai/version
2.6.24.3-ipipe
2.4.2

(The symptoms are the same both with and without Gilles patch to my previous
rt_task_delete problem).

Regards

Anders Blomdell

-- 
Anders Blomdell                  Email: [EMAIL PROTECTED]
Department of Automatic Control
Lund University                  Phone:    +46 46 222 4625
P.O. Box 118                     Fax:      +46 46 138118
SE-221 00 Lund, Sweden

_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to