Bugs item #833071, was opened at 2003-10-30 14:05
Message generated for change (Comment added) made by cbiere
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=428680&aid=833071&group_id=40696

Category: Behaviour
Group: 0.65.x
Status: Closed
Resolution: Out of Date
Priority: 5
Submitted By: Christian Biere (cbiere)
Assigned to: Nobody/Anonymous (nobody)
Summary: Invalid signal handling

Initial Comment:
Please fix src/BaseDisplay.cc:

BaseDisplay::BaseDisplay():
 - Don't connect any signal handlers to SIGFPE or
SIGSEGV - unless 
    you have very good reasons to to so.

signalhandler():
 - You MUST NOT use fprintf() in any signalhandler!
 - You MUST NOT use exit() in any signalhandler either,
use _exit().
 - base_display->handleSignal() is a pure virtual
method but the instance
   base_display hasn't been completely initialised yet
in all cases because
   the signalhandler is connected from the constructor
of the object.
 - You might want to apply the signalhandler to SIGQUIT
as well.

----------------------------------------------------------------------

>Comment By: Christian Biere (cbiere)
Date: 2004-09-06 07:08

Message:
Logged In: YES 
user_id=643728

Ok, as usual the SF's public CVS was way behind the
developer's CVS so I couldn't see those changes. Still, this
is not absolutely clean. sig_atomic_t is not necessarily
a 32-bit integer (could be a single byte) and many platforms
have even more than 32 signals (e.g., Solaris 8 has 34
signal types but SIG_ATOMIC_MAX is (1<<32) - 1. Well, I
*guess* the signal numbers are actually portable and below
32 but there's no such guarantee or standard. It would be
better to use one variable per signal you want to catch.

http://www.opengroup.org/onlinepubs/009695399/basedefs/stdint.h.html

----------------------------------------------------------------------

Comment By: Bradley T. Hughes (bradleyhughes)
Date: 2004-09-06 06:42

Message:
Logged In: YES 
user_id=459209

wrong, the signal handler in CVS (lib/Application.cc) does
not do anything but set a single bit in a sig_atomic_t. :)

----------------------------------------------------------------------

Comment By: Christian Biere (cbiere)
Date: 2004-09-03 13:57

Message:
Logged In: YES 
user_id=643728

This one still stands:

signalhandler():
- You MUST NOT use fprintf() in any signalhandler!

You can use write(STDERR_FILENO, ...) instead.

----------------------------------------------------------------------

Comment By: Bradley T. Hughes (bradleyhughes)
Date: 2004-09-03 13:14

Message:
Logged In: YES 
user_id=459209

the code in question has been rewritten propertly in CVS 

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=428680&aid=833071&group_id=40696

-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
List archives:  http://asgardsrealm.net/lurker/splash/index.html
Trouble? Contact [EMAIL PROTECTED]

Reply via email to