#### POSIX Threads for Windows – REFERENCE - pthreads-win32

Reference Index

Table of Contents

## Name

pthread_create - create a new thread

## Synopsis

#include <pthread.h>

int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg);

## Description

pthread_create creates a new thread of control that executes concurrently with the calling thread. The new thread applies the function start_routine passing it arg as first argument. The new thread terminates either explicitly, by calling pthread_exit(3) , or implicitly, by returning from the start_routine function. The latter case is equivalent to calling pthread_exit(3) with the result returned by start_routine as exit code.

The initial signal state of the new thread is inherited from it's creating thread and there are no pending signals. pthreads-win32 does not yet implement signals.

The initial CPU affinity of the new thread is inherited from it's creating thread. A threads CPU affinity can be obtained through pthread_getaffinity_np(3) and may be changed through pthread_setaffinity_np(3). Unless changed, all threads inherit the CPU affinity of the parent process. See sched_getaffinity(3) and sched_setaffinity(3).

The attr argument specifies thread attributes to be applied to the new thread. See pthread_attr_init(3) for a complete list of thread attributes. The attr argument can also be NULL, in which case default attributes are used: the created thread is joinable (not detached) and has default (non real-time) scheduling policy.

## Return Value

On success, the identifier of the newly created thread is stored in the location pointed by the thread argument, and a 0 is returned. On error, a non-zero error code is returned.

## Errors

EAGAIN
  Not enough system resources to create a process for the new thread, or
  more than PTHREAD_THREADS_MAX threads are already active.

## Author

Xavier Leroy <Xavier.Leroy@inria.fr>

Modified by Ross Johnson for use with pthreads-win32.

## See Also

pthread_exit(3) , pthread_join(3) , pthread_detach(3) , pthread_attr_init(3) , pthread_getaffinity_np(3) , pthread_setaffinity_np(3) , sched_getaffinity(3) , sched_setaffinity(3) .

Table of Contents

- Name

- Synopsis

- Description

- Return Value

- Errors

- Author

- See Also