dispatch_once

Section: C Library Functions (3)
Page Index

BSD mandoc
Darwin  

NAME

dispatch_once - execute a block only once  

SYNOPSIS

Fd #include <dispatch/dispatch.h> Ft void Fo dispatch_once Fa dispatch_once_t *predicate void (^block)(void) Fc Ft void Fo dispatch_once_f Fa dispatch_once_t *predicate void *context void (*function)(void *) Fc  

DESCRIPTION

The Fn dispatch_once function provides a simple and efficient mechanism to run an initializer exactly once, similar to pthread_once3. 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 Fn dispatch_once function is a wrapper around Fn dispatch_once_f .  

SEE ALSO

dispatch(3)


 

Index

NAME
SYNOPSIS
DESCRIPTION
FUNDAMENTALS
SEE ALSO