Move pthread_attr_{g,s}etscope() to a separate page and try to document
these better. Should fix PR lib/41831 from Wolfgang Stukenbrock. XXX: Please proofread.
This commit is contained in:
parent
0f0d9fe1d4
commit
69ff1aa9c5
|
@ -1,4 +1,4 @@
|
|||
# $NetBSD: Makefile,v 1.58 2010/07/06 21:36:34 jruoho Exp $
|
||||
# $NetBSD: Makefile,v 1.59 2010/07/07 08:22:53 jruoho Exp $
|
||||
#
|
||||
|
||||
WARNS= 4
|
||||
|
@ -91,6 +91,7 @@ MAN+= affinity.3 pthread.3 \
|
|||
pthread_attr.3 \
|
||||
pthread_attr_get_np.3 \
|
||||
pthread_attr_getname_np.3 \
|
||||
pthread_attr_getscope.3 \
|
||||
pthread_attr_setcreatesuspend_np.3 \
|
||||
pthread_attr_setname_np.3 \
|
||||
pthread_barrier_destroy.3 pthread_barrier_init.3 \
|
||||
|
@ -133,8 +134,8 @@ MLINKS+= pthread_attr.3 pthread_attr_setschedparam.3
|
|||
MLINKS+= pthread_attr.3 pthread_attr_getschedparam.3
|
||||
MLINKS+= pthread_attr.3 pthread_attr_setschedpolicy.3
|
||||
MLINKS+= pthread_attr.3 pthread_attr_getschedpolicy.3
|
||||
MLINKS+= pthread_attr.3 pthread_attr_setscope.3
|
||||
MLINKS+= pthread_attr.3 pthread_attr_getscope.3
|
||||
|
||||
MLINKS+= pthread_attr_getscope.3 pthread_attr_setscope.3
|
||||
|
||||
MLINKS+= pthread_barrierattr.3 pthread_barrierattr_init.3
|
||||
MLINKS+= pthread_barrierattr.3 pthread_barrierattr_destroy.3
|
||||
|
|
|
@ -0,0 +1,98 @@
|
|||
.\" $NetBSD: pthread_attr_getscope.3,v 1.1 2010/07/07 08:22:53 jruoho Exp $
|
||||
.\"
|
||||
.\" Copyright (c) 2010 Jukka Ruohonen <jruohonen@iki.fi>
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\"
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
||||
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
||||
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
.\" POSSIBILITY OF SUCH DAMAGE.
|
||||
.\"
|
||||
.Dd July 7, 2010
|
||||
.Dt PTHREAD_ATTR_GETSCOPE 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm pthread_attr_getscope
|
||||
.Nd get and set the contention scope attribute
|
||||
.Sh LIBRARY
|
||||
.Lb libpthread
|
||||
.Sh SYNOPSIS
|
||||
.In pthread.h
|
||||
.Ft int
|
||||
.Fn pthread_attr_getscope \
|
||||
"const pthread_attr_t * restrict attr" "int * restrict contentionscope"
|
||||
.Ft int
|
||||
.Fn pthread_attr_setscope "pthread_attr_t *attr" "int contentionscope"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Fn pthread_attr_getscope
|
||||
and
|
||||
.Fn pthread_attr_setscope
|
||||
functions get and set, respectively, the contention scope attribute in the
|
||||
.Fa attr
|
||||
object.
|
||||
.Pp
|
||||
The
|
||||
.Fa contentionscope
|
||||
parameter specifies the scheduling contention scope of a thread.
|
||||
It is only possible to set the scope of a thread before the thread is created.
|
||||
There are two possible contention scopes:
|
||||
.Bl -tag -width PTHREAD_SCOPE_PROCESS -offset 2n
|
||||
.It Dv PTHREAD_SCOPE_SYSTEM
|
||||
The thread will contend for
|
||||
.Tn CPU
|
||||
resources with all other processes and threads in the system.
|
||||
Generally this means that the user thread is bound directly to the
|
||||
kernel scheduling for its entire lifetime.
|
||||
.It Dv PTHREAD_SCOPE_PROCESS
|
||||
The thread will contend with other threads with the same scope attribute.
|
||||
In general, this means that all
|
||||
.Dv PTHREAD_SCOPE_PROCESS
|
||||
threads are grouped together and this group of threads contends for
|
||||
.Tn CPU
|
||||
resources.
|
||||
This is commonly seen to require a hybrid
|
||||
.Pq Dq M:N
|
||||
threading model in order to multiplex the user and kernel space scheduling.
|
||||
.El
|
||||
.Pp
|
||||
Only
|
||||
.Dv PTHREAD_SCOPE_SYSTEM
|
||||
is supported in
|
||||
.Nx .
|
||||
.Sh RETURN VALUES
|
||||
Upon successful completion, both functions return 0.
|
||||
Otherwise an error number is returned to indicate the error.
|
||||
.Sh ERRORS
|
||||
No errors are defined for
|
||||
.Fn pthread_attr_getscope .
|
||||
.Pp
|
||||
The
|
||||
.Fn pthread_attr_setscope
|
||||
function shall fail if:
|
||||
.Bl -tag -width Er
|
||||
.It Bq Er EINVAL
|
||||
Invalid parameter.
|
||||
.Sh SEE ALSO
|
||||
.Xr pthread_attr 3 ,
|
||||
.Xr csf 9
|
||||
.Sh STANDARDS
|
||||
Both functions conform to
|
||||
.St -p1003.1-96 .
|
Loading…
Reference in New Issue