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
- 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) |
Please login to continue.