Man page - dispatch_once(3)
Packages contains this manual
- dispatch_queue_create(3)
- dispatch_time(3)
- dispatch_read(3)
- dispatch_semaphore_create(3)
- dispatch_async(3)
- dispatch_io_create(3)
- dispatch_data_create(3)
- dispatch_source_create(3)
- dispatch_io_read(3)
- dispatch_once(3)
- dispatch_apply(3)
- dispatch_api(3)
- dispatch(3)
- dispatch_after(3)
- dispatch_object(3)
- dispatch_group_create(3)
apt-get install libdispatch-dev
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)