Provided by: manpages-dev_3.54-1ubuntu1_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-2001 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.

CONFORMING TO

       POSIX.1-2001.

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 3.54 of the Linux man-pages project.  A  description  of  the
       project,     and    information    about    reporting    bugs,    can    be    found    at
       http://www.kernel.org/doc/man-pages/.