Merge branch main into dev/wasi_threads
This commit is contained in:
@ -25,9 +25,9 @@ SRCS += $(APP_FRAMEWORK_DIR)/wgl/app/src/*.c
|
||||
|
||||
all:
|
||||
@$(CC) $(CFLAGS) $(SRCS) \
|
||||
--target=wasm32 -O3 -z stack-size=2048 -Wl,--initial-memory=65536 \
|
||||
-Wl,--allow-undefined \
|
||||
-Wl,--strip-all,--no-entry -nostdlib \
|
||||
--target=wasm32-wasi -O3 -z stack-size=2048 -Wl,--initial-memory=65536 \
|
||||
-nostdlib -Wl,--allow-undefined \
|
||||
-Wl,--strip-all,--no-entry \
|
||||
-Wl,--export=on_init -Wl,--export=on_timer_callback \
|
||||
-Wl,--export=on_widget_event \
|
||||
-Wl,--export=__heap_base,--export=__data_end \
|
||||
|
||||
@ -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)
|
||||
|
||||
36
samples/multi-thread/wasm-apps/main_thread_exception.c
Normal file
36
samples/multi-thread/wasm-apps/main_thread_exception.c
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user