Provided by: manpages-dev_4.15-1_all bug

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  implementation of the application's
       desired concurrency level, specified 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  concurrency  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).

       ┌──────────────────────────┬───────────────┬─────────┐
       │InterfaceAttributeValue   │
       ├──────────────────────────┼───────────────┼─────────┤
       │pthread_setconcurrency(), │ Thread safety │ MT-Safe │
       │pthread_getconcurrency()  │               │         │
       └──────────────────────────┴───────────────┴─────────┘

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
       provided for efficient execution of the application.

       Both  LinuxThreads  and NPTL are 1:1 threading implementations, so setting the concurrency
       level has no meaning.   In  other  words,  on  Linux  these  functions  merely  exist  for
       compatibility 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 4.15 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/.