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)