pthread_getconcurrency
,
pthread_setconcurrency
— get
or set level of concurrency
POSIX Threads Library (libpthread,
-lpthread)
#include
<pthread.h>
int
pthread_getconcurrency
(void);
int
pthread_setconcurrency
(int
new_level);
The
pthread_setconcurrency
()
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
pthread_getconcurrency
()
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.
The pthread_setconcurrency
() function will
fail if:
- [
EINVAL
]
- The value specified by new_level is negative.
- [
EAGAIN
]
- 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”).