summaryrefslogtreecommitdiffstats
path: root/man3/pthread_setconcurrency.3
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--man3/pthread_setconcurrency.3101
1 files changed, 101 insertions, 0 deletions
diff --git a/man3/pthread_setconcurrency.3 b/man3/pthread_setconcurrency.3
new file mode 100644
index 0000000..642208f
--- /dev/null
+++ b/man3/pthread_setconcurrency.3
@@ -0,0 +1,101 @@
+'\" t
+.\" Copyright (c) 2009 Michael Kerrisk, <mtk.manpages@gmail.com>
+.\"
+.\" SPDX-License-Identifier: Linux-man-pages-copyleft
+.\"
+.TH pthread_setconcurrency 3 2023-07-20 "Linux man-pages 6.05.01"
+.SH NAME
+pthread_setconcurrency, pthread_getconcurrency \- set/get
+the concurrency level
+.SH LIBRARY
+POSIX threads library
+.RI ( libpthread ", " \-lpthread )
+.SH SYNOPSIS
+.nf
+.B #include <pthread.h>
+.PP
+.BI "int pthread_setconcurrency(int " new_level );
+.BI "int pthread_getconcurrency(" void );
+.fi
+.SH DESCRIPTION
+The
+.BR pthread_setconcurrency ()
+function informs the implementation of the application's
+desired concurrency level, specified in
+.IR 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
+.BR pthread_setconcurrency ().
+.PP
+Specifying
+.I new_level
+as 0 instructs the implementation to manage the concurrency level
+as it deems appropriate.
+.PP
+.BR pthread_getconcurrency ()
+returns the current value of the concurrency level for this process.
+.SH RETURN VALUE
+On success,
+.BR pthread_setconcurrency ()
+returns 0;
+on error, it returns a nonzero error number.
+.PP
+.BR pthread_getconcurrency ()
+always succeeds, returning the concurrency level set by a previous call to
+.BR pthread_setconcurrency (),
+or 0, if
+.BR pthread_setconcurrency ()
+has not previously been called.
+.SH ERRORS
+.BR pthread_setconcurrency ()
+can fail with the following error:
+.TP
+.B EINVAL
+.I new_level
+is negative.
+.PP
+POSIX.1 also documents an
+.B EAGAIN
+error ("the value specified by
+.I new_level
+would cause a system resource to be exceeded").
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lbx lb lb
+l l l.
+Interface Attribute Value
+T{
+.na
+.nh
+.BR pthread_setconcurrency (),
+.BR pthread_getconcurrency ()
+T} Thread safety MT-Safe
+.TE
+.sp 1
+.SH STANDARDS
+POSIX.1-2008.
+.SH HISTORY
+glibc 2.1.
+POSIX.1-2001.
+.SH NOTES
+The default concurrency level is 0.
+.PP
+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.
+.PP
+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.
+.SH SEE ALSO
+.BR pthread_attr_setscope (3),
+.BR pthreads (7)