Why _ThreadProcessSignalsFromIrq() in new exception processing?
osv at javad.ru
Fri Feb 7 17:56:04 UTC 2003
Joel Sherrill <joel.sherrill at OARcorp.com> writes:
> Sergei Organov wrote:
> > Valette Eric <eric.valette at free.fr> writes:
> > > Sergei Organov wrote:
> > > > Could somebody please explain what is the purpose of call to
> > > > _ThreadProcessSignalsFromIrq() in the new-exception-processing from
> > > > the shared_raw_irq_code_entry? Should it be implemented in the old
> > > > exception processing for proper RTEMS behavior?
> > >
> > > I guess, you will not get fully working posix signaling without doing
> > > this (look at pthreadkill or signalsend). This block of code is used to
> > > trigger a processing on the newly switched thread that end up calling
> > > _API_extensions_Run_postswitch.
> > "Guess" is better than nothing :-) Does it mean I'm OK even without the
> > call if I don't use pthreads?
> No. Eric's description was correct but it is also be accounting
> Classic API signals. And POSIX signals can be sent to Classic tasks.
> There are in fact the mechanism used to implement Ada interrupts and
> this path is critical for handling FPU exceptions in Ada.
I'm lost. Please see below.
> > > NB : The code was already there on ix86 when I implemented the new
> > > exception model I just keeped it. When going to PPC, the call was
> > > missing so I added it.
> > So maybe those one who wrote it initially for ix86 will comment more...
> I'm commenting on the general use of the single boolean variable that is
> set to indicate that a signal has been sent to the currently executing
Now I'm totally lost. I'm looking at 20020807 snapshot now. The boolean
variable exists and is used in all the BSPs and old/new variants. That's not a
problem. There are, however, three BSPs that use it differently than others.
These BSPs are: arm, i386, powerpc/new_exception_processing.
Please take a look, for example, into
Search for _ThreadProcessSignalsFromIrq there.
If you are saying that this handling is the only correct, then all other BSPs
are broken?! I can't believe that, so the initial question remains (refer to
the beginning of citations above).
More information about the users