diff --git a/src/threads.c b/src/threads.c index 03e3aee60b26afed0243741feddcd9ef5be4ba61..62666f15a866515b935de44e3daaa58b39312674 100644 --- a/src/threads.c +++ b/src/threads.c @@ -35,11 +35,12 @@ void *new_thread_func(void * data) if(SETJMP(back)) { - exit_on_error="Error in handle_error in master object!\nPrevious error:"; + ONERROR tmp; + SET_ONERROR(tmp,exit_on_error,"Error in handle_error in master object!"); assign_svalue_no_free(sp++, & throw_value); APPLY_MASTER("handle_error", 1); pop_stack(); - automatic_fatal=0; + UNSET_ONERROR(tmp); } else { push_array_items(arg.args); arg.args=0;