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+14.3.quarterly>

home | help