You cannot invoke the longjmp function from an OpenVMS condition
handler. However, you may invoke longjmp from a signal handler
that has been established for any signal supported by the
Compaq C RTL, subject to the following nesting restrictions:
o The longjmp function will not work if you invoke it from
nested signal handlers. The result of the longjmp function,
when invoked from a signal handler that has been entered as a
result of an exception generated in another signal handler, is
undefined.
o Do not invoke the setjmp function from a signal handler unless
the associated longjmp is to be issued before the handling of
that signal is completed.
o Do not invoke the longjmp function from within an exit handler
(established with atexit or SYS$DCLEXH). Exit handlers are
invoked after image tear-down, so the destination address of
the longjmp no longer exists.
o Invoking longjmp from within a signal handler to return to
the main thread of execution might leave your program in
an inconsistent state. Possible side effects include the
inability to perform I/O or to receive any more UNIX signals.
Use siglongjmp instead.