chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] remove enable/disable interrupt flag


From: Jörg F . Wittenberger
Subject: Re: [Chicken-users] remove enable/disable interrupt flag
Date: 29 Sep 2011 20:35:41 +0200

On Sep 29 2011, Alan Post wrote:

On Thu, Sep 29, 2011 at 06:56:03PM +0200, Jörg F. Wittenberger wrote:
On Sep 29 2011, Alan Post wrote:

>The way Chicken is currently implemented, any signal that arrives
>during this time is discarded, which also makes me unhappy with this

Wait, I'm confused.

During which time signals are really discarded?

As far as I read the source, the signal will be recorded, not discarded.


If a signal is called when C_interrupts_enabled is false, the signal
handler turns into a no-op.

global_signal_handler calls C_raise_interrupt, but C_raise_interrupt
does nothing if C_interrupts_enabled is false, the entire routine is
contained in that if statement.

My reading of that is that a signal being delivered when
C_interrupts_enabled is false wil cause that signal to be discarded.

Yes?

Yes. That's what I've been talking about in the next paragraph.

With the changes I made (did I post them, did not I?) this problem is gone.

Hence my question how to clean up the API.  Default to possibly useless
re-calling the handler (while it assumes possibly having missed a signal
and hence re-check everything)?  Provide a modified API which covers
both cases? ...






reply via email to

[Prev in Thread] Current Thread [Next in Thread]