Updated: April 19, 2023 |
Terminate a thread
#include <threads.h> void thrd_exit( const int res );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The thrd_exit() function terminates the calling thread. If the thread is joinable, the value res is made available to any thread joining the terminating thread (only one thread can get the return status). If the thread is detached, all system resources allocated to the thread are immediately reclaimed.
Before the thread is terminated, any cancellation cleanup handlers that have been pushed are popped and executed, and any thread-specific-data destructor functions are executed. Thread termination doesn't implicitly release any process resources such as mutexes or file descriptors, or perform any process-cleanup actions such as calling atexit() handlers.
An implicit call to thrd_exit() is made when a thread other than the thread in which main() was first invoked returns from the start routine that was used to create it. The return value of the start routine is used as the thread's exit status.
For the last process thread, thrd_exit() behaves as if you called exit(0).
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | Yes |
Thread | Yes |