Module Name: src
Committed By: jruoho
Date: Wed Jul 7 08:22:54 UTC 2010
Modified Files:
src/lib/libpthread: Makefile
Added Files:
src/lib/libpthread: pthread_attr_getscope.3
Log Message:
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.
To generate a diff of this commit:
cvs rdiff -u -r1.58 -r1.59 src/lib/libpthread/Makefile
cvs rdiff -u -r0 -r1.1 src/lib/libpthread/pthread_attr_getscope.3
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libpthread/Makefile
diff -u src/lib/libpthread/Makefile:1.58 src/lib/libpthread/Makefile:1.59
--- src/lib/libpthread/Makefile:1.58 Tue Jul 6 21:36:34 2010
+++ src/lib/libpthread/Makefile Wed Jul 7 08:22:53 2010
@@ -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 @@
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_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
Added files:
Index: src/lib/libpthread/pthread_attr_getscope.3
diff -u /dev/null src/lib/libpthread/pthread_attr_getscope.3:1.1
--- /dev/null Wed Jul 7 08:22:54 2010
+++ src/lib/libpthread/pthread_attr_getscope.3 Wed Jul 7 08:22:53 2010
@@ -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 <[email protected]>
+.\" 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 .