wasm-micro-runtime/tests/standalone/test-pthread/thread_exit.c
2024-06-19 16:40:37 +08:00

42 lines
826 B
C

/*
* Copyright (C) 2023 Intel Corporation. All rights reserved.
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
*/
#include <pthread.h>
#include <stdio.h>
/* Start function for the background thread */
void *
bg_func(void *arg)
{
printf("Thread start.\n");
while (1) {
pthread_exit(NULL);
}
}
/* Foreground thread and main entry point */
int
main(int argc, char *argv[])
{
pthread_t bg_thread;
if (pthread_create(&bg_thread, NULL, bg_func, NULL)) {
printf("Thread create failed");
return 1;
}
printf("Thread created.\n");
/* Wait for background thread to finish */
if (pthread_join(bg_thread, NULL)) {
printf("Thread join failed");
return 2;
}
printf("Sub-thread exit.\n");
printf("Test success.\n");
return 0;
}