Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dispatch_once&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help