pthread_getconcurrency

PTHREAD_SETCONCURRENCY(3)  Linux Programmer's Manual PTHREAD_SETCONCURRENCY(3)

NAME
       pthread_setconcurrency,  pthread_getconcurrency  -  set/get the concur-
       rency 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).

       +--------------------------+---------------+---------+
       |Interface                 | Attribute     | Value   |
       +--------------------------+---------------+---------+
       |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  implementa-
       tions,  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 set-
       ting 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/.

Linux                             2017-09-15         PTHREAD_SETCONCURRENCY(3)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2021 Hurricane Electric. All Rights Reserved.