From e816e2b3382288e85f6139dadd5b02671ef0847d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Tue, 9 Aug 2016 16:37:34 +0200 Subject: [PATCH] Runtime: exit_on_error() should only exit on actual errors. Survive eg THREAD_EXIT being thrown while handling an error. --- src/error.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/error.c b/src/error.c index 6fe796fea8..6252ca7a8e 100644 --- a/src/error.c +++ b/src/error.c @@ -401,6 +401,14 @@ static int inhibit_errors = 0; PMOD_EXPORT void exit_on_error(const void *msg) { ONERROR tmp; + + if (throw_severity > THROW_ERROR) { + /* THROW_THREAD_EXIT or THROW_EXIT or similar. + * + * Let it continue without complaining. + */ + return; + } SET_ONERROR(tmp,fatal_on_error,"Fatal in exit_on_error!"); d_flag=0; Pike_interpreter.trace_level = 0; -- GitLab