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 associated with pre-
     vious 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+15.1.quarterly>

home | help