thrd_create
Defined in header <threads.h>
|
||
int thrd_create( thrd_t *thr, thrd_start_t func, void *arg ); |
(since C11) | |
Creates a new thread executing the function func
. The function is invoked as func(arg).
If successful, the object pointed to by thr
is set to the identifier of the new thread.
The completion of this function synchronizes-with the beginning of the thread.
Parameters
thr | - | pointer to memory location to put the identifier of the new thread |
func | - | function to execute |
arg | - | argument to pass to the function |
Return value
thrd_success if the creation of the new thread was successful. Otherwise returns thrd_nomem if there was insufficient amount of memory or thrd_error if another error occurred.
Notes
The thread identifiers may be reused for new threads once the thread has finished and joined or detached.
The type thrd_start_t is a typedef of int(*)(void*), which differs from the POSIX equivalent void*(*)(void*)
All thread-specific storage values (see tss_create) are initialized to NULL.
Return from the function func
is equivalent to calling thrd_exit with the argument equal to the return value of func
.
References
- C17 standard (ISO/IEC 9899:2018):
- 7.26.5.1 The thrd_create function (p: 279)
- C11 standard (ISO/IEC 9899:2011):
- 7.26.5.1 The thrd_create function (p: 383)
See also
(C11) |
detaches a thread (function) |
(C11) |
blocks until a thread terminates (function) |