Gets or sets level of concurrency.
Threads Library (libthreads.a)
#include <pthread.h>
int pthread_getconcurrency (void);
int pthread_setconcurrency (new_level)
int new_level;
The pthread_setconcurrency subroutine 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 pthread_getconcurrency subroutine returns the value set by a previous call to the pthread_setconcurrency subroutine. If the pthread_setconcurrency subroutine 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.
Use of these subroutines 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 subroutines since their use may conflict with an applications use of these functions.
Item | Description |
---|---|
new_level | Specifies the value of the concurrency level. |
If successful, the pthread_setconcurrency subroutine returns zero. Otherwise, an error number is returned to indicate the error.
The pthread_getconcurrency subroutine always returns the concurrency level set by a previous call to pthread_setconcurrency. If the pthread_setconcurrency subroutine has never been called, pthread_getconcurrency returns zero.
The pthread_setconcurrency subroutine will fail if:
Item | Description |
---|---|
EINVAL | The value specified by new_level is negative. |
EAGAIN | The value specific by new_level would cause a system resource to be exceeded. |