summaryrefslogtreecommitdiff
path: root/linuxthreads/man/pthread_once.man
diff options
context:
space:
mode:
Diffstat (limited to 'linuxthreads/man/pthread_once.man')
-rw-r--r--linuxthreads/man/pthread_once.man34
1 files changed, 34 insertions, 0 deletions
diff --git a/linuxthreads/man/pthread_once.man b/linuxthreads/man/pthread_once.man
new file mode 100644
index 0000000000..e9d117b656
--- /dev/null
+++ b/linuxthreads/man/pthread_once.man
@@ -0,0 +1,34 @@
+.TH PTHREAD_ONCE 3 LinuxThreads
+
+.SH NAME
+pthread_once \- once-only initialization
+
+.SH SYNOPSIS
+#include <pthread.h>
+
+pthread_once_t once_control = PTHREAD_ONCE_INIT;
+
+int pthread_once(pthread_once_t *once_control, void (*init_routine) (void));
+
+.SH DESCRIPTION
+
+The purpose of !pthread_once! is to ensure that a piece of
+initialization code is executed at most once. The |once_control|
+argument points to a static or extern variable statically initialized
+to !PTHREAD_ONCE_INIT!.
+
+The first time !pthread_once! is called with a given |once_control|
+argument, it calls |init_routine| with no argument and changes the
+value of the |once_control| variable to record that initialization has
+been performed. Subsequent calls to !pthread_once! with the same
+!once_control! argument do nothing.
+
+.SH "RETURN VALUE"
+!pthread_once! always returns 0.
+
+.SH ERRORS
+None.
+
+.SH AUTHOR
+Xavier Leroy <Xavier.Leroy@inria.fr>
+