Main thread spread exception when thread-mgr is enabled (#1889)

And refactor clear_wasi_proc_exit_exception, refer to
https://github.com/bytecodealliance/wasm-micro-runtime/pull/1869
This commit is contained in:
Xu Jun
2023-01-20 08:54:27 +08:00
committed by GitHub
parent cb7ac8fee3
commit cadf9d0ad3
10 changed files with 255 additions and 142 deletions

View File

@ -38,3 +38,6 @@ set (CMAKE_EXE_LINKER_FLAGS
add_executable(test.wasm main.c)
target_link_libraries(test.wasm)
add_executable(main_thread_exception.wasm main_thread_exception.c)
target_link_libraries(main_thread_exception.wasm)

View File

@ -0,0 +1,36 @@
/*
* Copyright (C) 2019 Intel Corporation. All rights reserved.
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
*/
#include <stdio.h>
#include <pthread.h>
typedef struct ThreadArgs {
int start;
int length;
} ThreadArgs;
void *
thread(void *args)
{
while (1) {
/* When other threads (including main thread) throw exception,
this thread can successfully exit the dead loop */
}
}
int
main()
{
pthread_t tids;
if (pthread_create(&tids, NULL, thread, NULL) != 0) {
printf("pthread_create failed\n");
}
/* Trigger an exception */
__builtin_trap();
return 0;
}