From 2e78230e0655bcb8efc040b51b6a9b8ee1c31f45 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Mon, 4 Sep 2023 17:52:19 +0900 Subject: [PATCH] set_exception_visitor: Remove the special case for wasi proc exit (#2525) While wasi proc exit is not a real trap, what the runtime does on it is mostly same as real traps. That is, kill the siblings threads and represent the exit/trap as the result of the "process" to the user api. There seems no reason to distinguish it from real traps here. Note that: - The target thread either doesn't care the specific exception type or ignore wasi proc exit by themselves. (clear_wasi_proc_exit_exception) - clear_wasi_proc_exit_exception only clears local exception. --- core/iwasm/libraries/thread-mgr/thread_manager.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/core/iwasm/libraries/thread-mgr/thread_manager.c b/core/iwasm/libraries/thread-mgr/thread_manager.c index 02430fe87..9a1e82d31 100644 --- a/core/iwasm/libraries/thread-mgr/thread_manager.c +++ b/core/iwasm/libraries/thread-mgr/thread_manager.c @@ -1260,12 +1260,8 @@ set_exception_visitor(void *node, void *user_data) exception_lock(wasm_inst); if (data->exception != NULL) { - /* Only spread non "wasi proc exit" exception */ - if (strcmp(data->exception, "wasi proc exit")) { - snprintf(wasm_inst->cur_exception, - sizeof(wasm_inst->cur_exception), "Exception: %s", - data->exception); - } + snprintf(wasm_inst->cur_exception, sizeof(wasm_inst->cur_exception), + "Exception: %s", data->exception); } else { wasm_inst->cur_exception[0] = '\0';