Provided by: libdispatch-dev_0~svn197-3.1ubuntu1_amd64 bug

NAME

     dispatch_once — execute a block only once

SYNOPSIS

     #include <dispatch/dispatch.h>

     void
     dispatch_once(dispatch_once_t *predicate, void (^block)(void));

     void
     dispatch_once_f(dispatch_once_t *predicate, void *context, void (*function)(void *));

DESCRIPTION

     The dispatch_once() function provides a simple and efficient mechanism to run an initializer
     exactly once, similar to pthread_once(3).  Well designed code hides the use of lazy
     initialization.  For example:

     FILE *getlogfile(void)
     {
             static dispatch_once_t pred;
             static FILE *logfile;

             dispatch_once(&pred, ^{
                     logfile = fopen(MY_LOG_FILE, "a");
             });

             return logfile;
     }

FUNDAMENTALS

     The dispatch_once() function is a wrapper around dispatch_once_f().

SEE ALSO

     dispatch(3)