PTHREAD_GETCONCURRENCY(3) | Library Functions Manual | PTHREAD_GETCONCURRENCY(3)

# NAME

`pthread_getconcurrency`, `pthread_setconcurrency` — get or set level of concurrency

# SYNOPSIS

POSIX Threads Library (libpthread, -lpthread)
`#include <pthread.h>`

int
`pthread_getconcurrency`(void);

int
`pthread_setconcurrency`(int new_level);

# DESCRIPTION

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.

# RETURN VALUES

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.

# ERRORS

`pthread_setconcurrency`() 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.

# APPLICATION USAGE

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.

# STANDARDS

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

June 7, 2025 | Debian