table of contents
| dispatch_once(3) | Library Functions Manual | dispatch_once(3) |
NAME¶
dispatch_once — execute a block only onceSYNOPSIS¶
#include <dispatch/dispatch.h> voiddispatch_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)| May 1, 2009 | Darwin |