[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Patch for gui/Tools/example.m
From: |
Chris B. Vetter |
Subject: |
Re: Patch for gui/Tools/example.m |
Date: |
Mon, 12 May 2003 12:56:09 -0700 |
On Mon, 12 May 2003 20:39:59 +0100
Richard Frith-Macdonald <richard@brainstorm.co.uk> wrote:
> However ... the original code is 'right' and the patch is 'wrong' ...
> the original code calls abort() ... which is the correct way to
> terminate a program so that you can get a core-dump and debug it.
I agree, for debugging purpose it makes sense to dump a core.
> For a daemon like gpbs which should really never crash, it's important
> that we should be able to debug it if it does crash, and it's good
> practice in general to call abort() if you can't manage to recover
> from an error.
gpbs did crash during termination, ie. a user's termination of X11.
Again, abort()'ing for debugging purpose is fine -- for a developer.
A regular user will see a huge core file and simply wonder where it came
from.
A user doesn't care and will only see a huge file that eats up
his/her quota/diskspace.
> Also ... barring a kernel bug, the signal status of the process will
> have no effect on any other process ... so if your X11 session is
> dieing, doesn't it make more sense to try to figure out what the bug
> is ... rather than trying to change other software to hide the
> problem?
... see above.
However, setting a signal (even if it's just SIG_IGN'd) during
initialization requires resetting the signal back to SIG_DFL
during termination - which example_service did not.
WindowMaker for example doesn't like it when its "children" won't
properly reset signals...
--
Chris