schmorp at schmorp.de
Sat Jan 9 10:30:19 CET 2010
On Fri, Jan 08, 2010 at 10:55:43AM -0800, Tim McClarren <tim at idle-games.com> wrote:
>> So what do you expect? There is no portable way to continue from
>> segfaults, and segfaults are asynchronous.
> Yes. I was under the impression from the documentation that the purpose
> of ev_signal was to attempt to deliver asynchronous signals
Exactly - so what do you expect?
>> What you try to do makes no sense - segfaults are a serious issue, you
>> can't just pretend nothing has happened and continue (you would have to
>> *fix* the problem and tell your program where to continue afterwards).
> I'm very well aware of that. I think you're assuming I'm trying to
> recover gracefully from a SEGV. That is not what I'm trying to do.
> Might I suggest, as an improvement, if what I'm trying to do makes no
> sense that ev_signal_init not take SIGSEGV as a parameter and assert?
Might I suggest, as an improvement, getting a book about unix/posix and
sigsegv cannot be recovered, so there is no way to make it synchronous to
your event loop. you already know thta, so why bother?
> I am trying to emit a stack to the log. I've done this before, via the
> usually sigaction route.
Again, you know you can't continue, so why bother?
Despite you claiming different, I feel that you have a fundamental
misunderstanding about signals, and SIGSEGV in particular. You can't emit
a "stack" (backtrace?) synchronously to your event handling, it has to be
done when you actually have the stack.
libev offers a special service - delivering asynchronous signals
synchronous to your event loop. no amount of assertions can change this,
and no amount of assertions will make up for reading a good book and
understanding how current cpus implement things (i.e. what a sigsegv is,
what a backtrace is, that you only have a backtrace when you are inside a
libev is not a newbie tool, and doesn't attempt to teach you the posix
model, or programming in general. that's up to you, there are a large
number of resoruces outside that do that much better than libev could ever
The choice of a Deliantra, the free code+content MORPG
-----==- _GNU_ http://www.deliantra.net
----==-- _ generation
---==---(_)__ __ ____ __ Marc Lehmann
--==---/ / _ \/ // /\ \/ / pcg at goof.com
More information about the libev