BARRE Sebastien wrote:
> * TEST 3 :
>
> I try to put parentheses to avoid compilation warning :
>
> if (xnthread_user_task(thread)->state == (TASK_INTERRUPTIBLE
> | TASK_ATOMICSWITCH) ) {
> rpi_pop(thread);
> xnlock_get_irqsave(&nklock, s);
> #ifdef CONFIG_SMP
> /* If the task changed its CPU while in secondary
> mode,
> change the CPU of the underlying Xenomai shadow
> too. We
> do not migrate the thread timers here, it would not
> work. For a "full" migration comprising timers,
> using
> xnpod_migrate_thread is required. */
> thread->sched = xnpod_sched_slot(cpu);
> #endif /* CONFIG_SMP */
> xnpod_resume_thread(thread, XNRELAX);
> ishield_off();
> xnpod_schedule();
> xnlock_put_irqrestore(&nklock, s);
> }
> }
>
> --> the result is not the same : the test program doesn't really start,
> nothing is displayed on the console. Control-C stop the program.
> The system is not dammaged. I've added a printf in the test program to check
> if it begin to execute :
Then we have a problem. With the ipipe-longer-atomicswitch.diff, the
state of the task when the gatekeeper thread is awaken should be
TASK_INTERRUPTIBLE | TASK_ATOMICSWITCH. So, there is something wrong
with the ATOMICSWITCH patch, it does not have the expected effect.
--
Gilles.
_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help