Man page - dispatch_once(3)
Packages contas this manual
- dispatch_data_create(3)
- dispatch_once(3)
- dispatch_io_create(3)
- dispatch_io_read(3)
- dispatch_apply(3)
- dispatch_queue_create(3)
- dispatch_api(3)
- dispatch_source_create(3)
- dispatch_group_create(3)
- dispatch(3)
- dispatch_time(3)
- dispatch_after(3)
- dispatch_semaphore_create(3)
- dispatch_read(3)
- dispatch_object(3)
- dispatch_async(3)
Package: libdispatch-dev
apt-get install libdispatch-dev
apt-get install libdispatch-dev
Manuals in package:
Documentations in package:
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
| May 1, 2009 | Darwin |