ck_epoch_recycle — return an epoch record that may be used by caller
Contents
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 previous calls to the ck_epoch_unregister(3) function.
Errors
Behavior is undefined if the object pointed to by epoch is not a valid epoch object.
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;
}
Library
Concurrency Kit (libck, -lck)
Name
ck_epoch_recycle — return an epoch record that may be used by caller
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.
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)
Synopsis
#include<ck_epoch.h>ck_epoch_record_t*ck_epoch_recycle(ck_epoch_t*epoch);
