Mail Archives: djgpp-workers/2001/01/08/13:57:08
>
>
> On Sun, 7 Jan 2001, Alain Magloire wrote:
>
> > > > By this do you mean, on many other OS implementations, the signal handler
> > > > is run on a separate stack. There are good reasons for doing it this way.
> > >
> > > Of course, there are good reasons to do that. Except that in DJGPP,
> > > these reasons don't exist.
> >
> > Well one of the obvious reason, is if you reach your stack limit and
> > been hit by a SIGVEC or something, running the handler on an alternate
> > stack will allow you to recuperate.
>
> DJGPP does that, too. (I didn't describe all the intricacies of the GPF
> exception handler.) The exception handler always starts on an alternate
> locked stack, but once it determines that the GPF was caused by the
> interrupt handler's resetting the data segment limit, it switches to the
> normal stack.
>
> So, to clarify: signal handlers for _real_ problems, such as SIGSEGV or
> SIGILL, run in semi-special context, and cannot return to the original
> code. But signal handlers for SIGINT, the timer, and other events which
> are translated into fake GPFs, run in normal application context.
Ha ! ok, thanks for taking the time to clear the clouds.
--
au revoir, alain
----
Aussi haut que l'on soit assis, on n'est toujours assis que sur son cul !!!
- Raw text -