This is the mail archive of the
ecos-devel@sourceware.org
mailing list for the eCos project.
Re: [ECOS] Miss calling ASR in sched.cxx
- From: Huang Yi <linuxjoy at gmail dot com>
- To: ecos-devel at sourceware dot org, kiron hy <linuxjoy at gmail dot com>
- Date: Tue, 3 May 2011 09:18:21 +0800
- Subject: Re: [ECOS] Miss calling ASR in sched.cxx
- References: <BANLkTimhcBZOy7v0pHeqXFkBZKG-WghmvQ@mail.gmail.com>
2011/4/22 kiron <linuxjoy@gmail.com>:
> When enable both CYGSEM_KERNEL_SCHED_ASR_SUPPORT and
> CYGIMP_KERNEL_INTERRUPTS_DSRS, consider that local variable call_asr
> is set to true and clear the asr_pending flag of current thread, but
> has DSRs_pending. It will continue the while loop and the call_asr's
> value is re-initialized to false, code path will miss to call ASR.
>
> Posix timer use ASR to deliver signal,If missing to call ASR, and
> signal will not been delivered. Unfortunately, posix time subsystem
> don't try to reset the asr_pending flag (see alarm_action() in
> packages/compat/posix/current/src/time.cxx), and the timer was
> disarmed forever (If it is a interval timer).
>
> here is a small patch to fix this.
>
> Huang Yi
> ------------------------
Anybody can review this patch? or I should send the mail to another mail list?
--
Huang Yi (kiron)
-------------------