Man page - dispatch_once(3)

Packages contains this manual

Manual


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

SEE ALSO

dispatch (3) Darwin May 1, 2009 dispatch_once (3)