[cpp-threads] Slightly revised memory model proposal (D2300)

Alexander Terekhov alexander.terekhov at gmail.com
Wed Jun 6 12:53:59 BST 2007


On 6/6/07, Nick Maclaren <nmm1 at cus.cam.ac.uk> wrote:
> "Alexander Terekhov" <alexander.terekhov at gmail.com> wrote:
> >
> > > or SIGFPE) and SIGSEGV etc.
> >
> > These are synchronous (not asynchronous) signals which C++
> > implementations are free to translate to C++ exceptions. Don't get me
> > started on std::unexpected() and C++ EH/ES, contact Dimov and/or
> > Abrahams.
>
> Yes and no.

http://h71000.www7.hp.com/doc/73final/6493/6101pro_030.html

For the signals traditionally representing synchronous errors in the
program, the Threads Library catches the signal and converts it into
an equivalent exception. This exception is then propagated up the call
stack in the current thread and can be caught and handled using the
normal exception catching mechanisms.

Table A-3 lists Tru64 UNIX signals that are reported as exceptions by
default. If any thread declares an action for one of these signals
(using sigaction(2) or equivalent), no thread in the process can
receive the exception.

Table A-3 Signals Reported as Exceptions

Signal   Exception

SIGILL  pthread_exc_illinstr_e
SIGIOT  pthread_exc_SIGIOT_e
SIGEMT  pthread_exc_SIGEMT_e
SIGFPE  pthread_exc_aritherr_e
SIGBUS  pthread_exc_illaddr_e
SIGSEGV  pthread_exc_illaddr_e
SIGSYS  pthread_exc_SIGSYS_e
SIGPIPE  pthread_exc_SIGPIPE_e

regards,
alexander.



More information about the cpp-threads mailing list