Add missing man pages. Fix various compliance bugs, mostly having to do with

error return values.  Implement pthread_mutexattr_gettype().

PR:		docs/16537, docs/17538
This commit is contained in:
Jason Evans 2000-05-02 06:51:40 +00:00
parent 2b91ff7819
commit 4c089f4dff
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=59892
38 changed files with 2583 additions and 71 deletions

85
lib/libc/sys/sigwait.2 Normal file
View file

@ -0,0 +1,85 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 27, 2000
.Dt SIGWAIT 3
.Os
.Sh NAME
.Nm sigwait
.Nd select a set of signals
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <signal.h>
.Ft int
.Fn sigwait "const sigset_t *set" "int *sig"
.Sh DESCRIPTION
The
.Fn sigwait
function selects a set of signals, specified by
.Fa set .
If none of the selected signals are pending,
.Fn sigwait
waits until one or more of the selected signals has been generated.
Then
.Fn sigwait
atomically clears one of the selected signals from the set of pending signals
for the process and sets the location pointed to by
.Fa sig
to the signal number that was cleared.
.Pp
The signals specified by
.Fa set
should be blocked at the time of the call to
.Fn sigwait .
.Sh RETURN VALUES
If successful,
.Fn sigwait
returns 0 and sets the location pointed to by
.Fa sig
to the cleared signal number.
Otherwise, an error number is returned.
.Sh ERRORS
.Fn sigwait
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
.Fa set
specifies one or more invalid signal numbers.
.El
.Sh SEE ALSO
.Xr pause 3 ,
.Xr pthread_sigmask 3 ,
.Xr sigaction 2 ,
.Xr sigpending 2 ,
.Xr sigsuspend 2
.Sh STANDARDS
.Fn sigwait
conforms to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.

View file

@ -4,9 +4,11 @@
.PATH: ${.CURDIR}/man
MAN3+= pthread_cancel.3 \
MAN3+= pthread_attr.3 \
pthread_cancel.3 \
pthread_cleanup_pop.3 \
pthread_cleanup_push.3 \
pthread_condattr.3 \
pthread_cond_broadcast.3 \
pthread_cond_destroy.3 \
pthread_cond_init.3 \
@ -21,6 +23,8 @@ MAN3+= pthread_cancel.3 \
pthread_join.3 \
pthread_key_create.3 \
pthread_key_delete.3 \
pthread_kill.3 \
pthread_mutexattr.3 \
pthread_mutex_destroy.3 \
pthread_mutex_init.3 \
pthread_mutex_lock.3 \
@ -36,20 +40,54 @@ MAN3+= pthread_cancel.3 \
pthread_rwlockattr_getpshared.3 \
pthread_rwlockattr_init.3 \
pthread_rwlockattr_setpshared.3 \
pthread_schedparam.3 \
pthread_self.3 \
pthread_setspecific.3 \
pthread_sigmask.3 \
pthread_testcancel.3 \
sem_destroy.3 \
sem_getvalue.3 \
sem_init.3 \
sem_open.3 \
sem_post.3 \
sem_wait.3
sem_wait.3 \
sigwait.3
MLINKS+= pthread_cancel.3 pthread_getcancelstate.3 \
pthread_cancel.3 pthread_setcancelstate.3 \
MLINKS+= \
pthread_attr.3 pthread_attr_destroy.3 \
pthread_attr.3 pthread_attr_getdetachstate.3 \
pthread_attr.3 pthread_attr_getinheritsched.3 \
pthread_attr.3 pthread_attr_getschedparam.3 \
pthread_attr.3 pthread_attr_getschedpolicy.3 \
pthread_attr.3 pthread_attr_getscope.3 \
pthread_attr.3 pthread_attr_getstackaddr.3 \
pthread_attr.3 pthread_attr_getstacksize.3 \
pthread_attr.3 pthread_attr_init.3 \
pthread_attr.3 pthread_attr_setdetachstate.3 \
pthread_attr.3 pthread_attr_setinheritsched.3 \
pthread_attr.3 pthread_attr_setschedparam.3 \
pthread_attr.3 pthread_attr_setschedpolicy.3 \
pthread_attr.3 pthread_attr_setscope.3 \
pthread_attr.3 pthread_attr_setstackaddr.3 \
pthread_attr.3 pthread_attr_setstacksize.3 \
pthread_condattr.3 pthread_condattr_init.3 \
pthread_condattr.3 pthread_condattr_destroy.3 \
pthread_mutexattr.3 pthread_mutexattr_init.3 \
pthread_mutexattr.3 pthread_mutexattr_destroy.3 \
pthread_mutexattr.3 pthread_mutexattr_getprioceiling.3 \
pthread_mutexattr.3 pthread_mutexattr_getprotocol.3 \
pthread_mutexattr.3 pthread_mutexattr_getpshared.3 \
pthread_mutexattr.3 pthread_mutexattr_gettype.3 \
pthread_mutexattr.3 pthread_mutexattr_setprioceiling.3 \
pthread_mutexattr.3 pthread_mutexattr_setprotocol.3 \
pthread_mutexattr.3 pthread_mutexattr_setpshared.3 \
pthread_mutexattr.3 pthread_mutexattr_settype.3 \
pthread_rwlock_rdlock.3 pthread_rwlock_tryrdlock.3 \
pthread_rwlock_wrlock.3 pthread_rwlock_trywrlock.3 \
pthread_schedparam.3 pthread_getschedparam.3 \
pthread_schedparam.3 pthread_setschedparam.3 \
pthread_testcancel.3 pthread_getcancelstate.3 \
pthread_testcancel.3 pthread_setcancelstate.3 \
sem_open.3 sem_close.3 \
sem_open.3 sem_unlink.3 \
sem_wait.3 sem_trywait.3

View file

@ -0,0 +1,200 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 28, 2000
.Dt PTHREAD_ATTR 3
.Os
.Sh NAME
.Nm pthread_attr
.Nd thread attribute operations
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_attr_init "pthread_attr_t *attr"
.Ft int
.Fn pthread_attr_destroy "pthread_attr_t *attr"
.Ft int
.Fn pthread_attr_setstacksize "pthread_attr_t *attr" "size_t stacksize"
.Ft int
.Fn pthread_attr_getstacksize "const pthread_attr_t *attr" "size_t *stacksize"
.Ft int
.Fn pthread_attr_setstackaddr "pthread_attr_t *attr" "void *stackaddr"
.Ft int
.Fn pthread_attr_getstackaddr "const pthread_attr_t *attr" "void **stackaddr"
.Ft int
.Fn pthread_attr_setdetachstate "pthread_attr_t *attr" "int detachstate"
.Ft int
.Fn pthread_attr_getdetachstate "const pthread_attr_t *attr" "int *detachstate"
.Ft int
.Fn pthread_attr_setinheritsched "pthread_attr_t *attr" "int inheritsched"
.Ft int
.Fn pthread_attr_getinheritsched "const pthread_attr_t *attr" "int *inheritsched"
.Ft int
.Fn pthread_attr_setschedparam "pthread_attr_t *attr" "const struct sched_param *param"
.Ft int
.Fn pthread_attr_getschedparam "const pthread_attr_t *attr" "struct schedparam *param"
.Ft int
.Fn pthread_attr_setschedpolicy "pthread_attr_t *attr" "int policy"
.Ft int
.Fn pthread_attr_getschedpolicy "const pthread_attr_t *attr" "int *policy"
.Ft int
.Fn pthread_attr_setscope "pthread_attr_t *attr" "int contentionscope"
.Ft int
.Fn pthread_attr_getscope "const pthread_attr_t *attr" "int *contentionscope"
.Sh DESCRIPTION
Thread attributes are used to specify parameters to
.Fn pthread_create .
One attribute object can be used in multiple calls to
.Fn pthread_create ,
with or without modifications between calls.
The
.Fn pthread_attr_init
function initializes
.Fa attr
with all the default thread attributes.
The
.Fn pthread_attr_destroy
function destroys
.Fa attr .
The
.Fn pthread_attr_set*
functions set the attribute that corresponds to each function name.
The
.Fn pthread_attr_get*
functions copy the value of the attribute that corresponds to each function name
to the location pointed to by the second function parameter.
.Sh RETURN VALUES
If successful, these functions return 0.
Otherwise, an error number is returned to indicate the error.
.Sh ERRORS
.Fn pthread_attr_init
will fail if:
.Bl -tag -width Er
.It Bq Er ENOMEM
Out of memory.
.El
.Fn pthread_attr_destroy
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.Fn pthread_attr_setstacksize
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
.Fa stacksize
is less than
.Dv PTHREAD_STACK_MIN .
.El
.Fn pthread_attr_setdetachstate
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa detachstate .
.El
.Fn pthread_attr_setinheritsched
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Fn pthread_attr_setschedparam
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.It Bq Er ENOTSUP
Invalid value for
.Fa param .
.El
.Fn pthread_attr_setschedpolicy
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.It Bq Er ENOTSUP
Invalid or unsupported value for
.Fa policy .
.El
.Fn pthread_attr_setscope
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.It Bq Er ENOTSUP
Invalid or unsupported value for
.Fa contentionscope .
.El
.Sh SEE ALSO
.Xr pthread_create 3
.Sh STANDARDS
.Fn pthread_attr_init ,
.Fn pthread_attr_destroy ,
.Fn pthread_attr_setstacksize ,
.Fn pthread_attr_getstacksize ,
.Fn pthread_attr_setstackaddr ,
.Fn pthread_attr_getstackaddr ,
.Fn pthread_attr_setdetachstate ,
and
.Fn pthread_attr_getdetachstate
conform to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.
.Fn pthread_attr_setinheritsched ,
.Fn pthread_attr_getinheritsched ,
.Fn pthread_attr_setschedparam ,
.Fn pthread_attr_getschedparam ,
.Fn pthread_attr_setschedpolicy ,
.Fn pthread_attr_getschedpolicy ,
.Fn pthread_attr_setscope ,
and
.Fn pthread_attr_getscope
conform to the Single UNIX Specification, Version 2
.Pq Dq Tn SUSv2 .

View file

@ -0,0 +1,82 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 28, 2000
.Dt PTHREAD_CONDATTR 3
.Os
.Sh NAME
.Nm pthread_condattr
.Nd condition attribute operations
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_condattr_init "pthread_condattr_t *attr"
.Ft int
.Fn pthread_condattr_destroy "pthread_condattr_t *attr"
.Sh DESCRIPTION
Condition attribute objects are used to specify parameters to
.Fn pthread_cond_init .
FreeBSD's implementation of conditions does not support any non-default
attributes, so these functions are not very useful, though they are required to
to be present by POSIX.
The
.Fn pthread_condattr_init
function initializes a condition attribute object with the default attributes.
The
.Fn pthread_condattr_destroy
function destroys a condition attribute object.
.Sh RETURN VALUES
If successful, these functions return 0.
Otherwise, an error number is returned to indicate the error.
.Sh ERRORS
.Fn pthread_condattr_init
will fail if:
.Bl -tag -width Er
.It Bq Er ENOMEM
Out of memory.
.El
.Fn pthread_condattr_destroy
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.Sh SEE ALSO
.Xr pthread_cond_init 3
.Sh STANDARDS
.Fn pthread_condattr_init
and
.Fn pthread_condattr_destroy
conform to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.

View file

@ -0,0 +1,75 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 27, 2000
.Dt PTHREAD_KILL 3
.Os
.Sh NAME
.Nm pthread_kill
.Nd send a signal to a specified thread
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <signal.h>
.Ft int
.Fn pthread_kill "pthread_t thread" "int sig"
.Sh DESCRIPTION
The
.Fn pthread_kill
function sends a signal, specified by
.Fa sig ,
to a thread, specified by
.Fa thread .
If
.Fa sig
is 0, error checking is performed, but no signal is actually sent.
.Sh RETURN VALUES
If successful,
.Fn pthread_kill
returns 0.
Otherwise, an error number is returned.
.Sh ERRORS
.Fn pthread_kill
will fail if:
.Bl -tag -width Er
.It Bq Er ESRCH
.Fa thread
is an invalid thread ID.
.It Bq Er EINVAL
.Fa sig
is an invalid or unsupported signal number.
.El
.Sh SEE ALSO
.Xr kill 2 ,
.Xr pthread_self 3 ,
.Xr raise 3
.Sh STANDARDS
.Fn pthread_kill
conforms to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.

View file

@ -0,0 +1,172 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd May 1, 2000
.Dt PTHREAD_MUTEXATTR 3
.Os
.Sh NAME
.Nm pthread_mutexattr
.Nd mutex attribute operations
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_mutexattr_init "pthread_mutexattr_t *attr"
.Ft int
.Fn pthread_mutexattr_destroy "pthread_mutexattr_t *attr"
.Ft int
.Fn pthread_mutexattr_setprioceiling "pthread_mutexattr_t *attr" "int prioceiling"
.Ft int
.Fn pthread_mutexattr_getprioceiling "pthread_mutexattr_t *attr" "int *prioceiling"
.Ft int
.Fn pthread_mutexattr_setprotocol "pthread_mutexattr_t *attr" "int protocol"
.Ft int
.Fn pthread_mutexattr_getprotocol "pthread_mutexattr_t *attr" "int *protocol"
.Ft int
.Fn pthread_mutexattr_settype "pthread_mutexattr_t *attr" "int type"
.Ft int
.Fn pthread_mutexattr_gettype "pthread_mutexattr_t *attr" "int *type"
.Sh DESCRIPTION
Mutex attributes are used to specify parameters to
.Fn pthread_mutex_init .
One attribute object can be used in multiple calls to
.Fn pthread_mutex_init ,
with or without modifications between calls.
The
.Fn pthread_mutexattr_init
function initializes
.Fa attr
with all the default mutex attributes.
The
.Fn pthread_mutexattr_destroy
function destroys
.Fa attr .
The
.Fn pthread_mutexattr_set*
functions set the attribute that corresponds to each function name.
The
.Fn pthread_mutexattr_get*
functions copy the value of the attribute that corresponds to each function name
to the location pointed to by the second function parameter.
.Sh RETURN VALUES
If successful, these functions return 0.
Otherwise, an error number is returned to indicacte the error.
.Sh ERRORS
.Fn pthread_mutexattr_init
will fail if:
.Bl -tag -width Er
.It Bq Er ENOMEM
Out of memory.
.El
.Fn pthread_mutexattr_destroy
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Fn pthread_mutexattr_setprioceiling
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr ,
or invalid value for
.Fa prioceiling .
.El
.Fn pthread_mutexattr_getprioceiling
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Fn pthread_mutexattr_setprotocol
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr ,
or invalid value for
.Fa protocol .
.El
.Fn pthread_mutexattr_getprotocol
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Fn pthread_mutexattr_settype
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr ,
or invalid value for
.Fa type .
.El
.Fn pthread_mutexattr_gettype
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Sh SEE ALSO
.Xr pthread_mutex_init 3
.Sh STANDARDS
.Fn pthread_mutexattr_init
and
.Fn pthread_mutexattr_destroy
conform to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.
.Fn pthread_mutexattr_setprioceiling ,
.Fn pthread_mutexattr_getprioceiling ,
.Fn pthread_mutexattr_setprotocol ,
.Fn pthread_mutexattr_getprotocol ,
.Fn pthread_mutexattr_settype ,
and
.Fn pthread_mutexattr_gettype
conform to the Single UNIX Specification, Version 2
.Pq Dq Tn SUSv2 .

View file

@ -0,0 +1,89 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd May 1, 2000
.Dt PTHREAD_SCHEDPARAM 3
.Os
.Sh NAME
.Nm pthread_schedparam
.Nd thread scheduling parameter manipulation
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_setschedparam "pthread_t thread" "int policy" "const struct sched_param *param"
.Ft int
.Fn pthread_getschedparam "pthread_t thread" "int *policy" "struct sched_param *param"
.Sh DESCRIPTION
The
.Fn pthread_setschedparam
and
.Fn pthread_getschedparam
functions set and get the scheduling parameters of individual threads.
The scheduling policy for a thread can either be
.Dv SCHED_FIFO
(first in, first out) or
.Dv SCHED_RR
(round-robin).
The thread priority (accessed via
.Va param->sched_priority )
must be at least
.Dv PTHREAD_MIN_PRIORITY
and no more than
.Dv PTHREAD_MAX_PRIORITY .
.Sh RETURN VALUES
If successful, these functions return 0.
Otherwise, an error number is returned to indicate the error.
.Sh ERRORS
.Fn pthread_setschedparam
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Va policy .
.It Bq Er ENOTSUP
Invalid value for scheduling parameters.
.It Bq Er ESRCH
Non-existent thread
.Va thread .
.El
.Fn pthread_getschedparam
will fail if:
.Bl -tag -width Er
.It Bq Er ESRCH
Non-existent thread
.Va thread .
.El
.Sh STANDARDS
.Fn pthread_setschedparam
and
.Fn pthread_getschedparam
conform to the Single UNIX Specification, Version 2
.Pq Dq Tn SUSv2 .

View file

@ -0,0 +1,96 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 27, 2000
.Dt PTHREAD_SIGMASK 3
.Os
.Sh NAME
.Nm pthread_sigmask
.Nd examine and/or change a thread's signal mask
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <signal.h>
.Ft int
.Fn pthread_sigmask "int how" "const sigset_t *set" "sigset_t *oset"
.Sh DESCRIPTION
The
.Fn pthread_sigmask
function examines and/or changes the calling thread's signal mask.
.Pp
If
.Fa set
is not
.Dv NULL ,
it specifies a set of signals to be modified, and
.Fa how
specifies what to set the signal mask to:
.Bl -tag -width SIG_UNBLOCK
.It Dv SIG_BLOCK
Union of the current mask and
.Fa set .
.It Dv SIG_UNBLOCK
Intersection of the current mask and the complement of
.Fa set .
.It Dv SIG_SETMASK
.Fa set .
.El
.Pp
If
.Fa oset
is not NULL, the previous signal mask is stored in the location pointed to by
.Fa oset .
.Pp
.Dv SIGKILL
and
.Dv SIGSTOP
cannot be blocked, and will be silently ignored if included in the signal mask.
.Sh RETURN VALUES
If successful,
.Fn pthread_sigmask
returns 0.
Otherwise, an error is returned.
.Sh ERRORS
.Fn pthread_sigmask
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
.Fa how
is not one of the defined values.
.El
.Sh SEE ALSO
.Xr sigaction 2 ,
.Xr sigpending 2 ,
.Xr sigprocmask 2 ,
.Xr sigsetops 3 ,
.Xr sigsuspend 2
.Sh STANDARDS
.Fn pthread_sigmask
conforms to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.

85
lib/libc_r/man/sigwait.3 Normal file
View file

@ -0,0 +1,85 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 27, 2000
.Dt SIGWAIT 3
.Os
.Sh NAME
.Nm sigwait
.Nd select a set of signals
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <signal.h>
.Ft int
.Fn sigwait "const sigset_t *set" "int *sig"
.Sh DESCRIPTION
The
.Fn sigwait
function selects a set of signals, specified by
.Fa set .
If none of the selected signals are pending,
.Fn sigwait
waits until one or more of the selected signals has been generated.
Then
.Fn sigwait
atomically clears one of the selected signals from the set of pending signals
for the process and sets the location pointed to by
.Fa sig
to the signal number that was cleared.
.Pp
The signals specified by
.Fa set
should be blocked at the time of the call to
.Fn sigwait .
.Sh RETURN VALUES
If successful,
.Fn sigwait
returns 0 and sets the location pointed to by
.Fa sig
to the cleared signal number.
Otherwise, an error number is returned.
.Sh ERRORS
.Fn sigwait
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
.Fa set
specifies one or more invalid signal numbers.
.El
.Sh SEE ALSO
.Xr pause 3 ,
.Xr pthread_sigmask 3 ,
.Xr sigaction 2 ,
.Xr sigpending 2 ,
.Xr sigsuspend 2
.Sh STANDARDS
.Fn sigwait
conforms to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.

View file

@ -41,9 +41,11 @@ pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param
{
int ret = 0;
if ((attr == NULL) || (*attr == NULL) || (param == NULL))
if ((attr == NULL) || (*attr == NULL))
ret = EINVAL;
else
else if (param == NULL) {
ret = ENOTSUP;
} else
(*attr)->prio = param->sched_priority;
return(ret);

View file

@ -41,10 +41,11 @@ pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy)
{
int ret = 0;
if ((attr == NULL) || (*attr == NULL) || (policy < SCHED_FIFO) ||
(policy > SCHED_RR))
if ((attr == NULL) || (*attr == NULL))
ret = EINVAL;
else
else if ((policy < SCHED_FIFO) || (policy > SCHED_RR)) {
ret = ENOTSUP;
} else
(*attr)->sched_policy = policy;
return(ret);

View file

@ -41,21 +41,14 @@ pthread_attr_setscope(pthread_attr_t *attr, int contentionscope)
{
int ret = 0;
if ((attr == NULL) || (*attr == NULL) ||
(contentionscope != PTHREAD_SCOPE_PROCESS) ||
(contentionscope != PTHREAD_SCOPE_SYSTEM))
if ((attr == NULL) || (*attr == NULL)) {
/* Return an invalid argument: */
ret = EINVAL;
else if (contentionscope == PTHREAD_SCOPE_SYSTEM)
/* We don't support system wide contention: */
#ifdef NOT_YET
} else if ((contentionscope != PTHREAD_SCOPE_PROCESS) ||
(contentionscope != PTHREAD_SCOPE_SYSTEM)) {
/* We don't support PTHREAD_SCOPE_SYSTEM. */
ret = ENOTSUP;
#else
ret = EOPNOTSUPP;
#endif
else
} else
(*attr)->flags |= contentionscope;
return(ret);

View file

@ -76,4 +76,19 @@ pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type)
}
return(ret);
}
int
pthread_mutexattr_gettype(pthread_mutexattr_t *attr, int *type)
{
int ret;
if (attr == NULL || *attr == NULL || (*attr)->m_type >=
MUTEX_TYPE_MAX) {
ret = EINVAL;
} else {
*type = (*attr)->m_type;
ret = 0;
}
return ret;
}
#endif

View file

@ -43,14 +43,16 @@ pthread_setschedparam(pthread_t pthread, int policy,
{
int old_prio, in_readyq = 0, ret = 0;
if ((param == NULL) || (param->sched_priority < PTHREAD_MIN_PRIORITY) ||
(param->sched_priority > PTHREAD_MAX_PRIORITY) ||
(policy < SCHED_FIFO) || (policy > SCHED_RR))
if ((param == NULL) || (policy < SCHED_FIFO) || (policy > SCHED_RR)) {
/* Return an invalid argument error: */
ret = EINVAL;
} else if ((param->sched_priority < PTHREAD_MIN_PRIORITY) ||
(param->sched_priority > PTHREAD_MAX_PRIORITY)) {
/* Return an unsupported value error. */
ret = ENOTSUP;
/* Find the thread in the list of active threads: */
else if ((ret = _find_thread(pthread)) == 0) {
} else if ((ret = _find_thread(pthread)) == 0) {
/*
* Defer signals to protect the scheduling queues from
* access by the signal handler:

View file

@ -41,9 +41,11 @@ pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param
{
int ret = 0;
if ((attr == NULL) || (*attr == NULL) || (param == NULL))
if ((attr == NULL) || (*attr == NULL))
ret = EINVAL;
else
else if (param == NULL) {
ret = ENOTSUP;
} else
(*attr)->prio = param->sched_priority;
return(ret);

View file

@ -41,10 +41,11 @@ pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy)
{
int ret = 0;
if ((attr == NULL) || (*attr == NULL) || (policy < SCHED_FIFO) ||
(policy > SCHED_RR))
if ((attr == NULL) || (*attr == NULL))
ret = EINVAL;
else
else if ((policy < SCHED_FIFO) || (policy > SCHED_RR)) {
ret = ENOTSUP;
} else
(*attr)->sched_policy = policy;
return(ret);

View file

@ -41,21 +41,14 @@ pthread_attr_setscope(pthread_attr_t *attr, int contentionscope)
{
int ret = 0;
if ((attr == NULL) || (*attr == NULL) ||
(contentionscope != PTHREAD_SCOPE_PROCESS) ||
(contentionscope != PTHREAD_SCOPE_SYSTEM))
if ((attr == NULL) || (*attr == NULL)) {
/* Return an invalid argument: */
ret = EINVAL;
else if (contentionscope == PTHREAD_SCOPE_SYSTEM)
/* We don't support system wide contention: */
#ifdef NOT_YET
} else if ((contentionscope != PTHREAD_SCOPE_PROCESS) ||
(contentionscope != PTHREAD_SCOPE_SYSTEM)) {
/* We don't support PTHREAD_SCOPE_SYSTEM. */
ret = ENOTSUP;
#else
ret = EOPNOTSUPP;
#endif
else
} else
(*attr)->flags |= contentionscope;
return(ret);

View file

@ -76,4 +76,19 @@ pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type)
}
return(ret);
}
int
pthread_mutexattr_gettype(pthread_mutexattr_t *attr, int *type)
{
int ret;
if (attr == NULL || *attr == NULL || (*attr)->m_type >=
MUTEX_TYPE_MAX) {
ret = EINVAL;
} else {
*type = (*attr)->m_type;
ret = 0;
}
return ret;
}
#endif

View file

@ -43,14 +43,16 @@ pthread_setschedparam(pthread_t pthread, int policy,
{
int old_prio, in_readyq = 0, ret = 0;
if ((param == NULL) || (param->sched_priority < PTHREAD_MIN_PRIORITY) ||
(param->sched_priority > PTHREAD_MAX_PRIORITY) ||
(policy < SCHED_FIFO) || (policy > SCHED_RR))
if ((param == NULL) || (policy < SCHED_FIFO) || (policy > SCHED_RR)) {
/* Return an invalid argument error: */
ret = EINVAL;
} else if ((param->sched_priority < PTHREAD_MIN_PRIORITY) ||
(param->sched_priority > PTHREAD_MAX_PRIORITY)) {
/* Return an unsupported value error. */
ret = ENOTSUP;
/* Find the thread in the list of active threads: */
else if ((ret = _find_thread(pthread)) == 0) {
} else if ((ret = _find_thread(pthread)) == 0) {
/*
* Defer signals to protect the scheduling queues from
* access by the signal handler:

View file

@ -4,9 +4,11 @@
.PATH: ${.CURDIR}/man
MAN3+= pthread_cancel.3 \
MAN3+= pthread_attr.3 \
pthread_cancel.3 \
pthread_cleanup_pop.3 \
pthread_cleanup_push.3 \
pthread_condattr.3 \
pthread_cond_broadcast.3 \
pthread_cond_destroy.3 \
pthread_cond_init.3 \
@ -21,6 +23,8 @@ MAN3+= pthread_cancel.3 \
pthread_join.3 \
pthread_key_create.3 \
pthread_key_delete.3 \
pthread_kill.3 \
pthread_mutexattr.3 \
pthread_mutex_destroy.3 \
pthread_mutex_init.3 \
pthread_mutex_lock.3 \
@ -36,20 +40,54 @@ MAN3+= pthread_cancel.3 \
pthread_rwlockattr_getpshared.3 \
pthread_rwlockattr_init.3 \
pthread_rwlockattr_setpshared.3 \
pthread_schedparam.3 \
pthread_self.3 \
pthread_setspecific.3 \
pthread_sigmask.3 \
pthread_testcancel.3 \
sem_destroy.3 \
sem_getvalue.3 \
sem_init.3 \
sem_open.3 \
sem_post.3 \
sem_wait.3
sem_wait.3 \
sigwait.3
MLINKS+= pthread_cancel.3 pthread_getcancelstate.3 \
pthread_cancel.3 pthread_setcancelstate.3 \
MLINKS+= \
pthread_attr.3 pthread_attr_destroy.3 \
pthread_attr.3 pthread_attr_getdetachstate.3 \
pthread_attr.3 pthread_attr_getinheritsched.3 \
pthread_attr.3 pthread_attr_getschedparam.3 \
pthread_attr.3 pthread_attr_getschedpolicy.3 \
pthread_attr.3 pthread_attr_getscope.3 \
pthread_attr.3 pthread_attr_getstackaddr.3 \
pthread_attr.3 pthread_attr_getstacksize.3 \
pthread_attr.3 pthread_attr_init.3 \
pthread_attr.3 pthread_attr_setdetachstate.3 \
pthread_attr.3 pthread_attr_setinheritsched.3 \
pthread_attr.3 pthread_attr_setschedparam.3 \
pthread_attr.3 pthread_attr_setschedpolicy.3 \
pthread_attr.3 pthread_attr_setscope.3 \
pthread_attr.3 pthread_attr_setstackaddr.3 \
pthread_attr.3 pthread_attr_setstacksize.3 \
pthread_condattr.3 pthread_condattr_init.3 \
pthread_condattr.3 pthread_condattr_destroy.3 \
pthread_mutexattr.3 pthread_mutexattr_init.3 \
pthread_mutexattr.3 pthread_mutexattr_destroy.3 \
pthread_mutexattr.3 pthread_mutexattr_getprioceiling.3 \
pthread_mutexattr.3 pthread_mutexattr_getprotocol.3 \
pthread_mutexattr.3 pthread_mutexattr_getpshared.3 \
pthread_mutexattr.3 pthread_mutexattr_gettype.3 \
pthread_mutexattr.3 pthread_mutexattr_setprioceiling.3 \
pthread_mutexattr.3 pthread_mutexattr_setprotocol.3 \
pthread_mutexattr.3 pthread_mutexattr_setpshared.3 \
pthread_mutexattr.3 pthread_mutexattr_settype.3 \
pthread_rwlock_rdlock.3 pthread_rwlock_tryrdlock.3 \
pthread_rwlock_wrlock.3 pthread_rwlock_trywrlock.3 \
pthread_schedparam.3 pthread_getschedparam.3 \
pthread_schedparam.3 pthread_setschedparam.3 \
pthread_testcancel.3 pthread_getcancelstate.3 \
pthread_testcancel.3 pthread_setcancelstate.3 \
sem_open.3 sem_close.3 \
sem_open.3 sem_unlink.3 \
sem_wait.3 sem_trywait.3

View file

@ -0,0 +1,200 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 28, 2000
.Dt PTHREAD_ATTR 3
.Os
.Sh NAME
.Nm pthread_attr
.Nd thread attribute operations
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_attr_init "pthread_attr_t *attr"
.Ft int
.Fn pthread_attr_destroy "pthread_attr_t *attr"
.Ft int
.Fn pthread_attr_setstacksize "pthread_attr_t *attr" "size_t stacksize"
.Ft int
.Fn pthread_attr_getstacksize "const pthread_attr_t *attr" "size_t *stacksize"
.Ft int
.Fn pthread_attr_setstackaddr "pthread_attr_t *attr" "void *stackaddr"
.Ft int
.Fn pthread_attr_getstackaddr "const pthread_attr_t *attr" "void **stackaddr"
.Ft int
.Fn pthread_attr_setdetachstate "pthread_attr_t *attr" "int detachstate"
.Ft int
.Fn pthread_attr_getdetachstate "const pthread_attr_t *attr" "int *detachstate"
.Ft int
.Fn pthread_attr_setinheritsched "pthread_attr_t *attr" "int inheritsched"
.Ft int
.Fn pthread_attr_getinheritsched "const pthread_attr_t *attr" "int *inheritsched"
.Ft int
.Fn pthread_attr_setschedparam "pthread_attr_t *attr" "const struct sched_param *param"
.Ft int
.Fn pthread_attr_getschedparam "const pthread_attr_t *attr" "struct schedparam *param"
.Ft int
.Fn pthread_attr_setschedpolicy "pthread_attr_t *attr" "int policy"
.Ft int
.Fn pthread_attr_getschedpolicy "const pthread_attr_t *attr" "int *policy"
.Ft int
.Fn pthread_attr_setscope "pthread_attr_t *attr" "int contentionscope"
.Ft int
.Fn pthread_attr_getscope "const pthread_attr_t *attr" "int *contentionscope"
.Sh DESCRIPTION
Thread attributes are used to specify parameters to
.Fn pthread_create .
One attribute object can be used in multiple calls to
.Fn pthread_create ,
with or without modifications between calls.
The
.Fn pthread_attr_init
function initializes
.Fa attr
with all the default thread attributes.
The
.Fn pthread_attr_destroy
function destroys
.Fa attr .
The
.Fn pthread_attr_set*
functions set the attribute that corresponds to each function name.
The
.Fn pthread_attr_get*
functions copy the value of the attribute that corresponds to each function name
to the location pointed to by the second function parameter.
.Sh RETURN VALUES
If successful, these functions return 0.
Otherwise, an error number is returned to indicate the error.
.Sh ERRORS
.Fn pthread_attr_init
will fail if:
.Bl -tag -width Er
.It Bq Er ENOMEM
Out of memory.
.El
.Fn pthread_attr_destroy
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.Fn pthread_attr_setstacksize
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
.Fa stacksize
is less than
.Dv PTHREAD_STACK_MIN .
.El
.Fn pthread_attr_setdetachstate
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa detachstate .
.El
.Fn pthread_attr_setinheritsched
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Fn pthread_attr_setschedparam
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.It Bq Er ENOTSUP
Invalid value for
.Fa param .
.El
.Fn pthread_attr_setschedpolicy
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.It Bq Er ENOTSUP
Invalid or unsupported value for
.Fa policy .
.El
.Fn pthread_attr_setscope
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.It Bq Er ENOTSUP
Invalid or unsupported value for
.Fa contentionscope .
.El
.Sh SEE ALSO
.Xr pthread_create 3
.Sh STANDARDS
.Fn pthread_attr_init ,
.Fn pthread_attr_destroy ,
.Fn pthread_attr_setstacksize ,
.Fn pthread_attr_getstacksize ,
.Fn pthread_attr_setstackaddr ,
.Fn pthread_attr_getstackaddr ,
.Fn pthread_attr_setdetachstate ,
and
.Fn pthread_attr_getdetachstate
conform to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.
.Fn pthread_attr_setinheritsched ,
.Fn pthread_attr_getinheritsched ,
.Fn pthread_attr_setschedparam ,
.Fn pthread_attr_getschedparam ,
.Fn pthread_attr_setschedpolicy ,
.Fn pthread_attr_getschedpolicy ,
.Fn pthread_attr_setscope ,
and
.Fn pthread_attr_getscope
conform to the Single UNIX Specification, Version 2
.Pq Dq Tn SUSv2 .

View file

@ -0,0 +1,82 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 28, 2000
.Dt PTHREAD_CONDATTR 3
.Os
.Sh NAME
.Nm pthread_condattr
.Nd condition attribute operations
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_condattr_init "pthread_condattr_t *attr"
.Ft int
.Fn pthread_condattr_destroy "pthread_condattr_t *attr"
.Sh DESCRIPTION
Condition attribute objects are used to specify parameters to
.Fn pthread_cond_init .
FreeBSD's implementation of conditions does not support any non-default
attributes, so these functions are not very useful, though they are required to
to be present by POSIX.
The
.Fn pthread_condattr_init
function initializes a condition attribute object with the default attributes.
The
.Fn pthread_condattr_destroy
function destroys a condition attribute object.
.Sh RETURN VALUES
If successful, these functions return 0.
Otherwise, an error number is returned to indicate the error.
.Sh ERRORS
.Fn pthread_condattr_init
will fail if:
.Bl -tag -width Er
.It Bq Er ENOMEM
Out of memory.
.El
.Fn pthread_condattr_destroy
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.Sh SEE ALSO
.Xr pthread_cond_init 3
.Sh STANDARDS
.Fn pthread_condattr_init
and
.Fn pthread_condattr_destroy
conform to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.

View file

@ -0,0 +1,75 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 27, 2000
.Dt PTHREAD_KILL 3
.Os
.Sh NAME
.Nm pthread_kill
.Nd send a signal to a specified thread
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <signal.h>
.Ft int
.Fn pthread_kill "pthread_t thread" "int sig"
.Sh DESCRIPTION
The
.Fn pthread_kill
function sends a signal, specified by
.Fa sig ,
to a thread, specified by
.Fa thread .
If
.Fa sig
is 0, error checking is performed, but no signal is actually sent.
.Sh RETURN VALUES
If successful,
.Fn pthread_kill
returns 0.
Otherwise, an error number is returned.
.Sh ERRORS
.Fn pthread_kill
will fail if:
.Bl -tag -width Er
.It Bq Er ESRCH
.Fa thread
is an invalid thread ID.
.It Bq Er EINVAL
.Fa sig
is an invalid or unsupported signal number.
.El
.Sh SEE ALSO
.Xr kill 2 ,
.Xr pthread_self 3 ,
.Xr raise 3
.Sh STANDARDS
.Fn pthread_kill
conforms to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.

View file

@ -0,0 +1,172 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd May 1, 2000
.Dt PTHREAD_MUTEXATTR 3
.Os
.Sh NAME
.Nm pthread_mutexattr
.Nd mutex attribute operations
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_mutexattr_init "pthread_mutexattr_t *attr"
.Ft int
.Fn pthread_mutexattr_destroy "pthread_mutexattr_t *attr"
.Ft int
.Fn pthread_mutexattr_setprioceiling "pthread_mutexattr_t *attr" "int prioceiling"
.Ft int
.Fn pthread_mutexattr_getprioceiling "pthread_mutexattr_t *attr" "int *prioceiling"
.Ft int
.Fn pthread_mutexattr_setprotocol "pthread_mutexattr_t *attr" "int protocol"
.Ft int
.Fn pthread_mutexattr_getprotocol "pthread_mutexattr_t *attr" "int *protocol"
.Ft int
.Fn pthread_mutexattr_settype "pthread_mutexattr_t *attr" "int type"
.Ft int
.Fn pthread_mutexattr_gettype "pthread_mutexattr_t *attr" "int *type"
.Sh DESCRIPTION
Mutex attributes are used to specify parameters to
.Fn pthread_mutex_init .
One attribute object can be used in multiple calls to
.Fn pthread_mutex_init ,
with or without modifications between calls.
The
.Fn pthread_mutexattr_init
function initializes
.Fa attr
with all the default mutex attributes.
The
.Fn pthread_mutexattr_destroy
function destroys
.Fa attr .
The
.Fn pthread_mutexattr_set*
functions set the attribute that corresponds to each function name.
The
.Fn pthread_mutexattr_get*
functions copy the value of the attribute that corresponds to each function name
to the location pointed to by the second function parameter.
.Sh RETURN VALUES
If successful, these functions return 0.
Otherwise, an error number is returned to indicacte the error.
.Sh ERRORS
.Fn pthread_mutexattr_init
will fail if:
.Bl -tag -width Er
.It Bq Er ENOMEM
Out of memory.
.El
.Fn pthread_mutexattr_destroy
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Fn pthread_mutexattr_setprioceiling
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr ,
or invalid value for
.Fa prioceiling .
.El
.Fn pthread_mutexattr_getprioceiling
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Fn pthread_mutexattr_setprotocol
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr ,
or invalid value for
.Fa protocol .
.El
.Fn pthread_mutexattr_getprotocol
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Fn pthread_mutexattr_settype
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr ,
or invalid value for
.Fa type .
.El
.Fn pthread_mutexattr_gettype
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Sh SEE ALSO
.Xr pthread_mutex_init 3
.Sh STANDARDS
.Fn pthread_mutexattr_init
and
.Fn pthread_mutexattr_destroy
conform to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.
.Fn pthread_mutexattr_setprioceiling ,
.Fn pthread_mutexattr_getprioceiling ,
.Fn pthread_mutexattr_setprotocol ,
.Fn pthread_mutexattr_getprotocol ,
.Fn pthread_mutexattr_settype ,
and
.Fn pthread_mutexattr_gettype
conform to the Single UNIX Specification, Version 2
.Pq Dq Tn SUSv2 .

View file

@ -0,0 +1,89 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd May 1, 2000
.Dt PTHREAD_SCHEDPARAM 3
.Os
.Sh NAME
.Nm pthread_schedparam
.Nd thread scheduling parameter manipulation
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_setschedparam "pthread_t thread" "int policy" "const struct sched_param *param"
.Ft int
.Fn pthread_getschedparam "pthread_t thread" "int *policy" "struct sched_param *param"
.Sh DESCRIPTION
The
.Fn pthread_setschedparam
and
.Fn pthread_getschedparam
functions set and get the scheduling parameters of individual threads.
The scheduling policy for a thread can either be
.Dv SCHED_FIFO
(first in, first out) or
.Dv SCHED_RR
(round-robin).
The thread priority (accessed via
.Va param->sched_priority )
must be at least
.Dv PTHREAD_MIN_PRIORITY
and no more than
.Dv PTHREAD_MAX_PRIORITY .
.Sh RETURN VALUES
If successful, these functions return 0.
Otherwise, an error number is returned to indicate the error.
.Sh ERRORS
.Fn pthread_setschedparam
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Va policy .
.It Bq Er ENOTSUP
Invalid value for scheduling parameters.
.It Bq Er ESRCH
Non-existent thread
.Va thread .
.El
.Fn pthread_getschedparam
will fail if:
.Bl -tag -width Er
.It Bq Er ESRCH
Non-existent thread
.Va thread .
.El
.Sh STANDARDS
.Fn pthread_setschedparam
and
.Fn pthread_getschedparam
conform to the Single UNIX Specification, Version 2
.Pq Dq Tn SUSv2 .

View file

@ -0,0 +1,96 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 27, 2000
.Dt PTHREAD_SIGMASK 3
.Os
.Sh NAME
.Nm pthread_sigmask
.Nd examine and/or change a thread's signal mask
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <signal.h>
.Ft int
.Fn pthread_sigmask "int how" "const sigset_t *set" "sigset_t *oset"
.Sh DESCRIPTION
The
.Fn pthread_sigmask
function examines and/or changes the calling thread's signal mask.
.Pp
If
.Fa set
is not
.Dv NULL ,
it specifies a set of signals to be modified, and
.Fa how
specifies what to set the signal mask to:
.Bl -tag -width SIG_UNBLOCK
.It Dv SIG_BLOCK
Union of the current mask and
.Fa set .
.It Dv SIG_UNBLOCK
Intersection of the current mask and the complement of
.Fa set .
.It Dv SIG_SETMASK
.Fa set .
.El
.Pp
If
.Fa oset
is not NULL, the previous signal mask is stored in the location pointed to by
.Fa oset .
.Pp
.Dv SIGKILL
and
.Dv SIGSTOP
cannot be blocked, and will be silently ignored if included in the signal mask.
.Sh RETURN VALUES
If successful,
.Fn pthread_sigmask
returns 0.
Otherwise, an error is returned.
.Sh ERRORS
.Fn pthread_sigmask
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
.Fa how
is not one of the defined values.
.El
.Sh SEE ALSO
.Xr sigaction 2 ,
.Xr sigpending 2 ,
.Xr sigprocmask 2 ,
.Xr sigsetops 3 ,
.Xr sigsuspend 2
.Sh STANDARDS
.Fn pthread_sigmask
conforms to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.

View file

@ -0,0 +1,85 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 27, 2000
.Dt SIGWAIT 3
.Os
.Sh NAME
.Nm sigwait
.Nd select a set of signals
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <signal.h>
.Ft int
.Fn sigwait "const sigset_t *set" "int *sig"
.Sh DESCRIPTION
The
.Fn sigwait
function selects a set of signals, specified by
.Fa set .
If none of the selected signals are pending,
.Fn sigwait
waits until one or more of the selected signals has been generated.
Then
.Fn sigwait
atomically clears one of the selected signals from the set of pending signals
for the process and sets the location pointed to by
.Fa sig
to the signal number that was cleared.
.Pp
The signals specified by
.Fa set
should be blocked at the time of the call to
.Fn sigwait .
.Sh RETURN VALUES
If successful,
.Fn sigwait
returns 0 and sets the location pointed to by
.Fa sig
to the cleared signal number.
Otherwise, an error number is returned.
.Sh ERRORS
.Fn sigwait
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
.Fa set
specifies one or more invalid signal numbers.
.El
.Sh SEE ALSO
.Xr pause 3 ,
.Xr pthread_sigmask 3 ,
.Xr sigaction 2 ,
.Xr sigpending 2 ,
.Xr sigsuspend 2
.Sh STANDARDS
.Fn sigwait
conforms to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.

View file

@ -41,9 +41,11 @@ pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param
{
int ret = 0;
if ((attr == NULL) || (*attr == NULL) || (param == NULL))
if ((attr == NULL) || (*attr == NULL))
ret = EINVAL;
else
else if (param == NULL) {
ret = ENOTSUP;
} else
(*attr)->prio = param->sched_priority;
return(ret);

View file

@ -41,10 +41,11 @@ pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy)
{
int ret = 0;
if ((attr == NULL) || (*attr == NULL) || (policy < SCHED_FIFO) ||
(policy > SCHED_RR))
if ((attr == NULL) || (*attr == NULL))
ret = EINVAL;
else
else if ((policy < SCHED_FIFO) || (policy > SCHED_RR)) {
ret = ENOTSUP;
} else
(*attr)->sched_policy = policy;
return(ret);

View file

@ -41,21 +41,14 @@ pthread_attr_setscope(pthread_attr_t *attr, int contentionscope)
{
int ret = 0;
if ((attr == NULL) || (*attr == NULL) ||
(contentionscope != PTHREAD_SCOPE_PROCESS) ||
(contentionscope != PTHREAD_SCOPE_SYSTEM))
if ((attr == NULL) || (*attr == NULL)) {
/* Return an invalid argument: */
ret = EINVAL;
else if (contentionscope == PTHREAD_SCOPE_SYSTEM)
/* We don't support system wide contention: */
#ifdef NOT_YET
} else if ((contentionscope != PTHREAD_SCOPE_PROCESS) ||
(contentionscope != PTHREAD_SCOPE_SYSTEM)) {
/* We don't support PTHREAD_SCOPE_SYSTEM. */
ret = ENOTSUP;
#else
ret = EOPNOTSUPP;
#endif
else
} else
(*attr)->flags |= contentionscope;
return(ret);

View file

@ -76,4 +76,19 @@ pthread_mutexattr_settype(pthread_mutexattr_t *attr, int type)
}
return(ret);
}
int
pthread_mutexattr_gettype(pthread_mutexattr_t *attr, int *type)
{
int ret;
if (attr == NULL || *attr == NULL || (*attr)->m_type >=
MUTEX_TYPE_MAX) {
ret = EINVAL;
} else {
*type = (*attr)->m_type;
ret = 0;
}
return ret;
}
#endif

View file

@ -43,14 +43,16 @@ pthread_setschedparam(pthread_t pthread, int policy,
{
int old_prio, in_readyq = 0, ret = 0;
if ((param == NULL) || (param->sched_priority < PTHREAD_MIN_PRIORITY) ||
(param->sched_priority > PTHREAD_MAX_PRIORITY) ||
(policy < SCHED_FIFO) || (policy > SCHED_RR))
if ((param == NULL) || (policy < SCHED_FIFO) || (policy > SCHED_RR)) {
/* Return an invalid argument error: */
ret = EINVAL;
} else if ((param->sched_priority < PTHREAD_MIN_PRIORITY) ||
(param->sched_priority > PTHREAD_MAX_PRIORITY)) {
/* Return an unsupported value error. */
ret = ENOTSUP;
/* Find the thread in the list of active threads: */
else if ((ret = _find_thread(pthread)) == 0) {
} else if ((ret = _find_thread(pthread)) == 0) {
/*
* Defer signals to protect the scheduling queues from
* access by the signal handler:

View file

@ -0,0 +1,200 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 28, 2000
.Dt PTHREAD_ATTR 3
.Os
.Sh NAME
.Nm pthread_attr
.Nd thread attribute operations
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_attr_init "pthread_attr_t *attr"
.Ft int
.Fn pthread_attr_destroy "pthread_attr_t *attr"
.Ft int
.Fn pthread_attr_setstacksize "pthread_attr_t *attr" "size_t stacksize"
.Ft int
.Fn pthread_attr_getstacksize "const pthread_attr_t *attr" "size_t *stacksize"
.Ft int
.Fn pthread_attr_setstackaddr "pthread_attr_t *attr" "void *stackaddr"
.Ft int
.Fn pthread_attr_getstackaddr "const pthread_attr_t *attr" "void **stackaddr"
.Ft int
.Fn pthread_attr_setdetachstate "pthread_attr_t *attr" "int detachstate"
.Ft int
.Fn pthread_attr_getdetachstate "const pthread_attr_t *attr" "int *detachstate"
.Ft int
.Fn pthread_attr_setinheritsched "pthread_attr_t *attr" "int inheritsched"
.Ft int
.Fn pthread_attr_getinheritsched "const pthread_attr_t *attr" "int *inheritsched"
.Ft int
.Fn pthread_attr_setschedparam "pthread_attr_t *attr" "const struct sched_param *param"
.Ft int
.Fn pthread_attr_getschedparam "const pthread_attr_t *attr" "struct schedparam *param"
.Ft int
.Fn pthread_attr_setschedpolicy "pthread_attr_t *attr" "int policy"
.Ft int
.Fn pthread_attr_getschedpolicy "const pthread_attr_t *attr" "int *policy"
.Ft int
.Fn pthread_attr_setscope "pthread_attr_t *attr" "int contentionscope"
.Ft int
.Fn pthread_attr_getscope "const pthread_attr_t *attr" "int *contentionscope"
.Sh DESCRIPTION
Thread attributes are used to specify parameters to
.Fn pthread_create .
One attribute object can be used in multiple calls to
.Fn pthread_create ,
with or without modifications between calls.
The
.Fn pthread_attr_init
function initializes
.Fa attr
with all the default thread attributes.
The
.Fn pthread_attr_destroy
function destroys
.Fa attr .
The
.Fn pthread_attr_set*
functions set the attribute that corresponds to each function name.
The
.Fn pthread_attr_get*
functions copy the value of the attribute that corresponds to each function name
to the location pointed to by the second function parameter.
.Sh RETURN VALUES
If successful, these functions return 0.
Otherwise, an error number is returned to indicate the error.
.Sh ERRORS
.Fn pthread_attr_init
will fail if:
.Bl -tag -width Er
.It Bq Er ENOMEM
Out of memory.
.El
.Fn pthread_attr_destroy
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.Fn pthread_attr_setstacksize
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
.Fa stacksize
is less than
.Dv PTHREAD_STACK_MIN .
.El
.Fn pthread_attr_setdetachstate
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa detachstate .
.El
.Fn pthread_attr_setinheritsched
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Fn pthread_attr_setschedparam
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.It Bq Er ENOTSUP
Invalid value for
.Fa param .
.El
.Fn pthread_attr_setschedpolicy
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.It Bq Er ENOTSUP
Invalid or unsupported value for
.Fa policy .
.El
.Fn pthread_attr_setscope
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.It Bq Er ENOTSUP
Invalid or unsupported value for
.Fa contentionscope .
.El
.Sh SEE ALSO
.Xr pthread_create 3
.Sh STANDARDS
.Fn pthread_attr_init ,
.Fn pthread_attr_destroy ,
.Fn pthread_attr_setstacksize ,
.Fn pthread_attr_getstacksize ,
.Fn pthread_attr_setstackaddr ,
.Fn pthread_attr_getstackaddr ,
.Fn pthread_attr_setdetachstate ,
and
.Fn pthread_attr_getdetachstate
conform to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.
.Fn pthread_attr_setinheritsched ,
.Fn pthread_attr_getinheritsched ,
.Fn pthread_attr_setschedparam ,
.Fn pthread_attr_getschedparam ,
.Fn pthread_attr_setschedpolicy ,
.Fn pthread_attr_getschedpolicy ,
.Fn pthread_attr_setscope ,
and
.Fn pthread_attr_getscope
conform to the Single UNIX Specification, Version 2
.Pq Dq Tn SUSv2 .

View file

@ -0,0 +1,82 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 28, 2000
.Dt PTHREAD_CONDATTR 3
.Os
.Sh NAME
.Nm pthread_condattr
.Nd condition attribute operations
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_condattr_init "pthread_condattr_t *attr"
.Ft int
.Fn pthread_condattr_destroy "pthread_condattr_t *attr"
.Sh DESCRIPTION
Condition attribute objects are used to specify parameters to
.Fn pthread_cond_init .
FreeBSD's implementation of conditions does not support any non-default
attributes, so these functions are not very useful, though they are required to
to be present by POSIX.
The
.Fn pthread_condattr_init
function initializes a condition attribute object with the default attributes.
The
.Fn pthread_condattr_destroy
function destroys a condition attribute object.
.Sh RETURN VALUES
If successful, these functions return 0.
Otherwise, an error number is returned to indicate the error.
.Sh ERRORS
.Fn pthread_condattr_init
will fail if:
.Bl -tag -width Er
.It Bq Er ENOMEM
Out of memory.
.El
.Fn pthread_condattr_destroy
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.Sh SEE ALSO
.Xr pthread_cond_init 3
.Sh STANDARDS
.Fn pthread_condattr_init
and
.Fn pthread_condattr_destroy
conform to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.

View file

@ -0,0 +1,75 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 27, 2000
.Dt PTHREAD_KILL 3
.Os
.Sh NAME
.Nm pthread_kill
.Nd send a signal to a specified thread
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <signal.h>
.Ft int
.Fn pthread_kill "pthread_t thread" "int sig"
.Sh DESCRIPTION
The
.Fn pthread_kill
function sends a signal, specified by
.Fa sig ,
to a thread, specified by
.Fa thread .
If
.Fa sig
is 0, error checking is performed, but no signal is actually sent.
.Sh RETURN VALUES
If successful,
.Fn pthread_kill
returns 0.
Otherwise, an error number is returned.
.Sh ERRORS
.Fn pthread_kill
will fail if:
.Bl -tag -width Er
.It Bq Er ESRCH
.Fa thread
is an invalid thread ID.
.It Bq Er EINVAL
.Fa sig
is an invalid or unsupported signal number.
.El
.Sh SEE ALSO
.Xr kill 2 ,
.Xr pthread_self 3 ,
.Xr raise 3
.Sh STANDARDS
.Fn pthread_kill
conforms to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.

View file

@ -0,0 +1,172 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd May 1, 2000
.Dt PTHREAD_MUTEXATTR 3
.Os
.Sh NAME
.Nm pthread_mutexattr
.Nd mutex attribute operations
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_mutexattr_init "pthread_mutexattr_t *attr"
.Ft int
.Fn pthread_mutexattr_destroy "pthread_mutexattr_t *attr"
.Ft int
.Fn pthread_mutexattr_setprioceiling "pthread_mutexattr_t *attr" "int prioceiling"
.Ft int
.Fn pthread_mutexattr_getprioceiling "pthread_mutexattr_t *attr" "int *prioceiling"
.Ft int
.Fn pthread_mutexattr_setprotocol "pthread_mutexattr_t *attr" "int protocol"
.Ft int
.Fn pthread_mutexattr_getprotocol "pthread_mutexattr_t *attr" "int *protocol"
.Ft int
.Fn pthread_mutexattr_settype "pthread_mutexattr_t *attr" "int type"
.Ft int
.Fn pthread_mutexattr_gettype "pthread_mutexattr_t *attr" "int *type"
.Sh DESCRIPTION
Mutex attributes are used to specify parameters to
.Fn pthread_mutex_init .
One attribute object can be used in multiple calls to
.Fn pthread_mutex_init ,
with or without modifications between calls.
The
.Fn pthread_mutexattr_init
function initializes
.Fa attr
with all the default mutex attributes.
The
.Fn pthread_mutexattr_destroy
function destroys
.Fa attr .
The
.Fn pthread_mutexattr_set*
functions set the attribute that corresponds to each function name.
The
.Fn pthread_mutexattr_get*
functions copy the value of the attribute that corresponds to each function name
to the location pointed to by the second function parameter.
.Sh RETURN VALUES
If successful, these functions return 0.
Otherwise, an error number is returned to indicacte the error.
.Sh ERRORS
.Fn pthread_mutexattr_init
will fail if:
.Bl -tag -width Er
.It Bq Er ENOMEM
Out of memory.
.El
.Fn pthread_mutexattr_destroy
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Fn pthread_mutexattr_setprioceiling
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr ,
or invalid value for
.Fa prioceiling .
.El
.Fn pthread_mutexattr_getprioceiling
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Fn pthread_mutexattr_setprotocol
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr ,
or invalid value for
.Fa protocol .
.El
.Fn pthread_mutexattr_getprotocol
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Fn pthread_mutexattr_settype
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr ,
or invalid value for
.Fa type .
.El
.Fn pthread_mutexattr_gettype
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Fa attr .
.El
.Sh SEE ALSO
.Xr pthread_mutex_init 3
.Sh STANDARDS
.Fn pthread_mutexattr_init
and
.Fn pthread_mutexattr_destroy
conform to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.
.Fn pthread_mutexattr_setprioceiling ,
.Fn pthread_mutexattr_getprioceiling ,
.Fn pthread_mutexattr_setprotocol ,
.Fn pthread_mutexattr_getprotocol ,
.Fn pthread_mutexattr_settype ,
and
.Fn pthread_mutexattr_gettype
conform to the Single UNIX Specification, Version 2
.Pq Dq Tn SUSv2 .

View file

@ -0,0 +1,89 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd May 1, 2000
.Dt PTHREAD_SCHEDPARAM 3
.Os
.Sh NAME
.Nm pthread_schedparam
.Nd thread scheduling parameter manipulation
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <pthread.h>
.Ft int
.Fn pthread_setschedparam "pthread_t thread" "int policy" "const struct sched_param *param"
.Ft int
.Fn pthread_getschedparam "pthread_t thread" "int *policy" "struct sched_param *param"
.Sh DESCRIPTION
The
.Fn pthread_setschedparam
and
.Fn pthread_getschedparam
functions set and get the scheduling parameters of individual threads.
The scheduling policy for a thread can either be
.Dv SCHED_FIFO
(first in, first out) or
.Dv SCHED_RR
(round-robin).
The thread priority (accessed via
.Va param->sched_priority )
must be at least
.Dv PTHREAD_MIN_PRIORITY
and no more than
.Dv PTHREAD_MAX_PRIORITY .
.Sh RETURN VALUES
If successful, these functions return 0.
Otherwise, an error number is returned to indicate the error.
.Sh ERRORS
.Fn pthread_setschedparam
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
Invalid value for
.Va policy .
.It Bq Er ENOTSUP
Invalid value for scheduling parameters.
.It Bq Er ESRCH
Non-existent thread
.Va thread .
.El
.Fn pthread_getschedparam
will fail if:
.Bl -tag -width Er
.It Bq Er ESRCH
Non-existent thread
.Va thread .
.El
.Sh STANDARDS
.Fn pthread_setschedparam
and
.Fn pthread_getschedparam
conform to the Single UNIX Specification, Version 2
.Pq Dq Tn SUSv2 .

View file

@ -0,0 +1,96 @@
.\" Copyright (C) 2000 Jason Evans <jasone@canonware.com>.
.\" 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(s), this list of conditions and the following disclaimer as
.\" the first lines of this file unmodified other than the possible
.\" addition of one or more copyright notices.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice(s), 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 COPYRIGHT HOLDER(S) ``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 COPYRIGHT HOLDER(S) 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.
.\"
.\" $FreeBSD$
.Dd April 27, 2000
.Dt PTHREAD_SIGMASK 3
.Os
.Sh NAME
.Nm pthread_sigmask
.Nd examine and/or change a thread's signal mask
.Sh LIBRARY
.Lb libc_r
.Sh SYNOPSIS
.Fd #include <signal.h>
.Ft int
.Fn pthread_sigmask "int how" "const sigset_t *set" "sigset_t *oset"
.Sh DESCRIPTION
The
.Fn pthread_sigmask
function examines and/or changes the calling thread's signal mask.
.Pp
If
.Fa set
is not
.Dv NULL ,
it specifies a set of signals to be modified, and
.Fa how
specifies what to set the signal mask to:
.Bl -tag -width SIG_UNBLOCK
.It Dv SIG_BLOCK
Union of the current mask and
.Fa set .
.It Dv SIG_UNBLOCK
Intersection of the current mask and the complement of
.Fa set .
.It Dv SIG_SETMASK
.Fa set .
.El
.Pp
If
.Fa oset
is not NULL, the previous signal mask is stored in the location pointed to by
.Fa oset .
.Pp
.Dv SIGKILL
and
.Dv SIGSTOP
cannot be blocked, and will be silently ignored if included in the signal mask.
.Sh RETURN VALUES
If successful,
.Fn pthread_sigmask
returns 0.
Otherwise, an error is returned.
.Sh ERRORS
.Fn pthread_sigmask
will fail if:
.Bl -tag -width Er
.It Bq Er EINVAL
.Fa how
is not one of the defined values.
.El
.Sh SEE ALSO
.Xr sigaction 2 ,
.Xr sigpending 2 ,
.Xr sigprocmask 2 ,
.Xr sigsetops 3 ,
.Xr sigsuspend 2
.Sh STANDARDS
.Fn pthread_sigmask
conforms to ISO/IEC 9945-1 ANSI/IEEE
.Pq Dq Tn POSIX
Std 1003.1 1996 Edition.