1.\" Copyright (c) 1996 John Birrell <jb@cimlogic.com.au>. 2.\" All rights reserved. 3.\" 4.\" Redistribution and use in source and binary forms, with or without 5.\" modification, are permitted provided that the following conditions 6.\" are met: 7.\" 1. Redistributions of source code must retain the above copyright 8.\" notice, this list of conditions and the following disclaimer. --- 14 unchanged lines hidden (view full) --- 23.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 24.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 25.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 26.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 27.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 28.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 29.\" SUCH DAMAGE. 30.\" |
31.\" $FreeBSD: head/share/man/man3/pthread_once.3 57686 2000-03-02 09:14:21Z sheldonh $ |
32.\" 33.Dd April 4, 1996 34.Dt PTHREAD_ONCE 3 35.Os BSD 4 36.Sh NAME 37.Nm pthread_once 38.Nd dynamic package initialization 39.Sh SYNOPSIS --- 6 unchanged lines hidden (view full) --- 46.Fn pthread_once "pthread_once_t *once_control" "void (*init_routine)(void)" 47.Sh DESCRIPTION 48The first call to 49.Fn pthread_once 50by any thread in a process, with a given 51.Fa once_control , 52will call the 53.Fn init_routine |
54with no arguments. 55Subsequent calls to |
56.Fn pthread_once 57with the same 58.Fa once_control 59will not call the 60.Fn init_routine . 61On return from 62.Fn pthread_once , 63it is guaranteed that 64.Fn init_routine |
65has completed. 66The |
67.Fa once_control 68parameter is used to determine whether the associated initialization 69routine has been called. 70.Pp 71The function 72.Fn pthread_once |
73is not a cancellation point. 74However, if |
75.Fn init_routine 76is a cancellation point and is cancelled, the effect on 77.Fa once_control is as if 78.Fn pthread_once 79was never called. 80.Pp 81The constant 82.Fa PTHREAD_ONCE_INIT --- 5 unchanged lines hidden (view full) --- 88is undefined if 89.Fa once_control 90has automatic storage duration or is not initialized by 91.Fa PTHREAD_ONCE_INIT . 92.Pp 93.Sh RETURN VALUES 94If successful, the 95.Fn pthread_once |
96function will return zero. 97Otherwise an error number will be returned to |
98indicate the error. 99.Sh ERRORS 100None. 101.Pp 102.Sh STANDARDS 103.Fn pthread_once 104conforms to ISO/IEC 9945-1 ANSI/IEEE 105.Pq Dq Tn POSIX 106Std 1003.1 Second Edition 1996-07-12. |