1 .\" Copyright (c) 2003 Sergey Osokin <osa@FreeBSD.org.ru>
2 .\" All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
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.
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
27 .Dt PTHREAD_GETCONCURRENCY 3
30 .Nm pthread_getconcurrency ,
31 .Nm pthread_setconcurrency
32 .Nd get or set level of concurrency
40 .Fn pthread_getconcurrency void
42 .Fn pthread_setconcurrency "int new_level"
45 .Fn pthread_getconcurrency
46 function allows an application to inform the threads implementation
47 of its desired concurrency level,
49 The actual level of concurrency provided by the implementation
50 as a result of this function call is unspecified.
53 is zero, it causes the implementation to maintain the concurrency
54 level at its discretion as if
55 .Fn pthread_setconcurrency
58 .Fn pthread_getconcurrency
59 function returns the value set by a previous call to the
60 .Fn pthread_setconcurrency
63 .Fn pthread_setconcurrency
64 function was not previously called, this function returns zero to
65 indicate that the implementation is maintaining the concurrency
67 When an application calls
68 .Fn pthread_setconcurrency ,
69 it is informing the implementation of its desired concurrency
71 The implementation uses this as a hint, not a requirement.
74 .Fn pthread_setconcurrency
75 function returns zero.
76 Otherwise, an error number is returned
77 to indicate the error.
79 .Fn pthread_getconcurrency
80 function always returns the concurrency level set by a previous
82 .Fn pthread_setconcurrency .
84 .Fn pthread_setconcurrency
85 function has never been called,
86 .Fn pthread_getconcurrency
90 .Fn pthread_setconcurrency
91 function will fail if:
94 The value specified by
98 The value specified by
100 would cause a system resource to be exceeded.
102 .Sh APPLICATION USAGE
103 Use of these functions changes the state of the underlying
104 concurrency upon which the application depends.
105 Library developers are advised to not use the
106 .Fn pthread_getconcurrency
108 .Fn pthread_setconcurrency
109 functions since their use may conflict with an application's
110 use of these functions.
113 .Fn pthread_getconcurrency
115 .Fn pthread_setconcurrency