/* * Copyright (C) 2023 Intel Corporation. All rights reserved. * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception */ #include #include /* 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; }