Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/lib/libpthread Move pthread_attr_{g, s}etscope() to a separat...



details:   https://anonhg.NetBSD.org/src/rev/3de79b9746a5
branches:  trunk
changeset: 756144:3de79b9746a5
user:      jruoho <jruoho%NetBSD.org@localhost>
date:      Wed Jul 07 08:22:53 2010 +0000

description:
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.

diffstat:

 lib/libpthread/Makefile                |   7 +-
 lib/libpthread/pthread_attr_getscope.3 |  98 ++++++++++++++++++++++++++++++++++
 2 files changed, 102 insertions(+), 3 deletions(-)

diffs (130 lines):

diff -r c19b9bae0137 -r 3de79b9746a5 lib/libpthread/Makefile
--- a/lib/libpthread/Makefile   Wed Jul 07 04:57:39 2010 +0000
+++ b/lib/libpthread/Makefile   Wed Jul 07 08:22:53 2010 +0000
@@ -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
diff -r c19b9bae0137 -r 3de79b9746a5 lib/libpthread/pthread_attr_getscope.3
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/libpthread/pthread_attr_getscope.3    Wed Jul 07 08:22:53 2010 +0000
@@ -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@localhost>
+.\" 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 .



Home | Main Index | Thread Index | Old Index