manpagez: man pages & more
man dispatch_once(3)
Home | html | info | man
dispatch_once(3)         BSD Library Functions Manual         dispatch_once(3)


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().

Darwin                            May 1, 2009                           Darwin

Mac OS X 10.6 - Generated Thu Sep 17 20:19:25 CDT 2009
© manpagez.com 2000-2021
Individual documents may contain additional copyright information.