xref: /freebsd/share/man/man3/pthread_getconcurrency.3 (revision 6b3455a7665208c366849f0b2b3bc916fb97516e)
1.\" Copyright (c) 2003 Sergey Osokin <osa@FreeBSD.org.ru>
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD$
26.Dd April 11, 2003
27.Dt PTHREAD_GETCONCURRENCY 3
28.Os
29.Sh NAME
30.Nm pthread_getconcurrency ,
31.Nm pthread_setconcurrency
32.Nd get or set level of concurrency
33.Sh LIBRARY
34.Lb libc_r
35.Lb libpthread
36.Lb libthr
37.Sh SYNOPSIS
38.In pthread.h
39.Ft int
40.Fn pthread_getconcurrency void
41.Ft int
42.Fn pthread_setconcurrency "int new_level"
43.Sh DESCRIPTION
44The
45.Fn pthread_getconcurrency
46function allows an application to inform the threads implementation
47of its desired concurrency level,
48.Fa new_level .
49The actual level of concurrency provided by the implementation
50as a result of this function call is unspecified.
51If
52.Fa new_level
53is zero, it causes the implementation to maintain the concurrency
54level at its discretion as if
55.Fn pthread_setconcurrency
56was never called.
57The
58.Fn pthread_getconcurrency
59function returns the value set by a previous call to the
60.Fn pthread_setconcurrency
61function.
62If the
63.Fn pthread_setconcurrency
64function was not previously called, this function returns zero to
65indicate that the implementation is maintaining the concurrency
66level.
67When an application calls
68.Fn pthread_setconcurrency ,
69it is informing the implementation of its desired concurrency
70level.
71The implementation uses this as a hint, not a requirement.
72.Sh RETURN VALUES
73If successful, the
74.Fn pthread_setconcurrency
75function returns zero.
76Otherwise, an error number is returned
77to indicate the error.
78The
79.Fn pthread_getconcurrency
80function always returns the concurrency level set by a previous
81call to
82.Fn pthread_setconcurrency .
83If the
84.Fn pthread_setconcurrency
85function has never been called,
86.Fn pthread_getconcurrency
87returns zero.
88.Sh ERRORS
89The
90.Fn pthread_setconcurrency
91function will fail if:
92.Bl -tag -width Er
93.It Bq Er EINVAL
94The value specified by
95.Fa new_level
96is negative.
97.It Bq Er EAGAIN
98The value specified by
99.Fa new_level
100would cause a system resource to be exceeded.
101.El
102.Sh APPLICATION USAGE
103Use of these functions changes the state of the underlying
104concurrency upon which the application depends.
105Library developers are advised to not use the
106.Fn pthread_getconcurrency
107and
108.Fn pthread_setconcurrency
109functions since their use may conflict with an application's
110use of these functions.
111.Sh STANDARDS
112The
113.Fn pthread_getconcurrency
114and
115.Fn pthread_setconcurrency
116functions conform to
117.St -susv2 .
118