--- liboilcpu.c 2007/08/14 17:49:29 1.43
+++ liboilcpu.c 2007/08/15 21:22:50 1.44
@@ -146,10 +146,14 @@
illegal_instruction_handler (int num)
{
if (in_try_block) {
+#if 0
+ /* alternate method of siglongjmp() */
sigset_t set;
sigemptyset (&set);
sigaddset (&set, SIGILL);
sigprocmask (SIG_UNBLOCK, &set, NULL);
+ longjmp (jump_env, 1);
+#endif
siglongjmp (jump_env, 1);
} else {
abort ();
@@ -204,7 +208,7 @@
int ret;
in_try_block = 1;
- ret = sigsetjmp (jump_env);
+ ret = sigsetjmp (jump_env, 1);
if (!ret) {
func (priv);
}