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)