On 07/12/2011 02:57 PM, Jan Kiszka wrote:
> xnlock_put_irqrestore(&nklock, s);
> xnpod_schedule();
> }
> @@ -1036,6 +1043,7 @@ redo:
> * to process this signal anyway.
> */
> if (rthal_current_domain == rthal_root_domain) {
> + XENO_BUGON(NUCLEUS, xnthread_test_info(thread, XNATOMIC));
Misleading dead code again, XNATOMIC is cleared not ten lines above.
> if (XENO_DEBUG(NUCLEUS) && (!signal_pending(this_task)
> || this_task->state != TASK_RUNNING))
> xnpod_fatal
> @@ -1044,6 +1052,8 @@ redo:
> return -ERESTARTSYS;
> }
>
> + xnthread_clear_info(thread, XNATOMIC);
Why this? I find the xnthread_clear_info(XNATOMIC) right at the right
place at the point it currently is.
> +
> /* "current" is now running into the Xenomai domain. */
> thread->gksched = NULL;
> sched = xnsched_finish_unlocked_switch(thread->sched);
> @@ -2650,6 +2660,8 @@ static inline void do_sigwake_event(struct task_struct
> *p)
>
> xnlock_get_irqsave(&nklock, s);
>
> + xnthread_clear_info(thread, XNATOMIC);
> +
Ditto.
--
Gilles.
_______________________________________________
Xenomai-core mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-core