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 Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core