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.Dd April 11, 2003 25.Dt PTHREAD_GETCONCURRENCY 3 26.Os 27.Sh NAME 28.Nm pthread_getconcurrency , 29.Nm pthread_setconcurrency 30.Nd get or set level of concurrency 31.Sh LIBRARY 32.Lb libpthread 33.Sh SYNOPSIS 34.In pthread.h 35.Ft int 36.Fn pthread_getconcurrency void 37.Ft int 38.Fn pthread_setconcurrency "int new_level" 39.Sh DESCRIPTION 40The 41.Fn pthread_setconcurrency 42function allows an application to inform the threads implementation 43of its desired concurrency level, 44.Fa new_level . 45The actual level of concurrency provided by the implementation 46as a result of this function call is unspecified. 47If 48.Fa new_level 49is zero, it causes the implementation to maintain the concurrency 50level at its discretion as if 51.Fn pthread_setconcurrency 52was never called. 53The 54.Fn pthread_getconcurrency 55function returns the value set by a previous call to the 56.Fn pthread_setconcurrency 57function. 58If the 59.Fn pthread_setconcurrency 60function was not previously called, this function returns zero to 61indicate that the implementation is maintaining the concurrency 62level. 63When an application calls 64.Fn pthread_setconcurrency , 65it is informing the implementation of its desired concurrency 66level. 67The implementation uses this as a hint, not a requirement. 68.Sh RETURN VALUES 69If successful, the 70.Fn pthread_setconcurrency 71function returns zero. 72Otherwise, an error number is returned 73to indicate the error. 74The 75.Fn pthread_getconcurrency 76function always returns the concurrency level set by a previous 77call to 78.Fn pthread_setconcurrency . 79If the 80.Fn pthread_setconcurrency 81function has never been called, 82.Fn pthread_getconcurrency 83returns zero. 84.Sh ERRORS 85The 86.Fn pthread_setconcurrency 87function will fail if: 88.Bl -tag -width Er 89.It Bq Er EINVAL 90The value specified by 91.Fa new_level 92is negative. 93.It Bq Er EAGAIN 94The value specified by 95.Fa new_level 96would cause a system resource to be exceeded. 97.El 98.Sh APPLICATION USAGE 99Use of these functions changes the state of the underlying 100concurrency upon which the application depends. 101Library developers are advised to not use the 102.Fn pthread_getconcurrency 103and 104.Fn pthread_setconcurrency 105functions since their use may conflict with an application's 106use of these functions. 107.Sh STANDARDS 108The 109.Fn pthread_getconcurrency 110and 111.Fn pthread_setconcurrency 112functions conform to 113.St -susv2 . 114