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

FreeBSD Manual Pages

  
 
  

home | help
NAME
       ck_epoch_recycle	-- return an epoch record that may be used by caller

LIBRARY
       Concurrency Kit (libck, -lck)

SYNOPSIS
       #include	<ck_epoch.h>

       ck_epoch_record_t *
       ck_epoch_recycle(ck_epoch_t *epoch);

DESCRIPTION
       The  ck_epoch_recycle(3)	 function  attempts  to	return an unused epoch
       record object for use by	the caller. These epoch	records	 were  associ-
       ated with previous calls	to the ck_epoch_unregister(3) function.

EXAMPLE
	     #include <ck_epoch.h>
	     #include <stdlib.h>

	     /*
	      *	epoch was previously initialized with ck_epoch_init.
	      */
	     ck_epoch_t	*epoch;

	     void
	     function(void)
	     {
		     ck_epoch_record_t *record;

		     record = ck_epoch_recycle(&epoch);
		     if	(record	== NULL) {
			     record = malloc(sizeof *record);
			     if	(record	== NULL)
				     return;

			     ck_epoch_register(&epoch, record, NULL);
		     }

		     /*
		      *	After we are done, we will unregister the record so it
		      *	can be used by other new participants in the epoch system
		      *	provided by the	object pointed to by "epoch".
		      */
		     ck_epoch_unregister(&epoch, record);
		     return;
	     }

RETURN VALUES
       This  function  returns	a pointer to a ck_epoch_record_t object. If no
       unused record was found to be associated	with the object	pointed	to  by
       epoch, then the function	will return NULL.

ERRORS
       Behavior	 is undefined if the object pointed to by epoch	is not a valid
       epoch object.

SEE ALSO
       ck_epoch_init(3),     ck_epoch_register(3),     ck_epoch_unregister(3),
       ck_epoch_poll(3),     ck_epoch_synchronize(3),	  ck_epoch_reclaim(3),
       ck_epoch_barrier(3),	   ck_epoch_call(3),	    ck_epoch_begin(3),
       ck_epoch_end(3)

       Additional information available	at http://concurrencykit.org/

			       September 2, 2012	   CK_EPOCH_RECYCLE(3)

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

home | help