PTHREAD_SETCONCURRENCY(3) (2017-09-15) PTHREAD_SETCONCURRENCY(3) NAME pthread_setconcurrency, pthread_getconcurrency - set/get the concurrency level SYNOPSIS #include <pthread.h> int pthread_setconcurrency(int new_level); int pthread_getconcurrency(void); Compile and link with -pthread. DESCRIPTION The pthread_setconcurrency() function informs the implemen- tation of the application's desired concurrency level, spec- ified in new_level. The implementation takes this only as a hint: POSIX.1 does not specify the level of concurrency that should be provided as a result of calling pthread_setconcurrency(). Specifying new_level as 0 instructs the implementation to manage the concurrency level as it deems appropriate. pthread_getconcurrency() returns the current value of the concurrency level for this process. RETURN VALUE On success, pthread_setconcurrency() returns 0; on error, it returns a nonzero error number. pthread_getconcurrency() always succeeds, returning the con- currency level set by a previous call to pthread_setconcurrency(), or 0, if pthread_setconcurrency() has not previously been called. ERRORS pthread_setconcurrency() can fail with the following error: EINVAL new_level is negative. POSIX.1 also documents an EAGAIN error ("the value specified by new_level would cause a system resource to be exceeded"). VERSIONS These functions are available in glibc since version 2.1. ATTRIBUTES For an explanation of the terms used in this section, see attributes(7). allbox; lbw25 lb lb l l l. Page 1 Linux (printed 5/17/22) PTHREAD_SETCONCURRENCY(3) (2017-09-15) PTHREAD_SETCONCURRENCY(3) Interface Attribute Value T{ pthread_setconcurrency(), pthread_getconcurrency() T} Thread safety MT-Safe CONFORMING TO POSIX.1-2001, POSIX.1-2008. NOTES The default concurrency level is 0. Concurrency levels are meaningful only for M:N threading implementations, where at any moment a subset of a process's set of user-level threads may be bound to a smaller number of kernel-scheduling entities. Setting the concurrency level allows the application to give the system a hint as to the number of kernel-scheduling entities that should be pro- vided for efficient execution of the application. Both LinuxThreads and NPTL are 1:1 threading implementa- tions, so setting the concurrency level has no meaning. In other words, on Linux these functions merely exist for com- patibility with other systems, and they have no effect on the execution of a program. SEE ALSO pthread_attr_setscope(3), pthreads(7) COLOPHON This page is part of release 5.10 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/. Page 2 Linux (printed 5/17/22)