OpenBSD manual page server

Manual Page Search Parameters

PTHREAD_GETCONCURRENCY(3) Library Functions Manual PTHREAD_GETCONCURRENCY(3)

pthread_getconcurrency, pthread_setconcurrencyget or set level of concurrency

#include <pthread.h>

int
pthread_getconcurrency(void);

int
pthread_setconcurrency(int new_level);

The () function allows an application to inform the threads implementation of its desired concurrency level, new_level. The actual level of concurrency provided by the implementation as a result of this function call is unspecified. If new_level is zero, it causes the implementation to maintain the concurrency level at its discretion as if pthread_setconcurrency() was never called. The () function returns the value set by a previous call to the pthread_setconcurrency() function. If the pthread_setconcurrency() function was not previously called, this function returns zero to indicate that the implementation is maintaining the concurrency level. When an application calls pthread_setconcurrency(), it is informing the implementation of its desired concurrency level. The implementation uses this as a hint, not a requirement.

If successful, the pthread_setconcurrency() function returns zero. Otherwise, an error number is returned to indicate the error. The pthread_getconcurrency() function always returns the concurrency level set by a previous call to pthread_setconcurrency(). If the pthread_setconcurrency() function has never been called, pthread_getconcurrency() returns zero.

pthread_setconcurrency() will fail if:

[]
The value specified by new_level is negative.
[]
The value specified by new_level would cause a system resource to be exceeded.

Use of these functions changes the state of the underlying concurrency upon which the application depends. Library developers are advised to not use the pthread_getconcurrency() and pthread_setconcurrency() functions since their use may conflict with an application's use of these functions.

The pthread_getconcurrency() and pthread_setconcurrency() functions conform to Version 2 of the Single UNIX Specification (“SUSv2”).

June 5, 2013 OpenBSD-current