SysTutorials

Linux Manual Pages › Section 3

ck_epoch_recycle(3)

NAME

ck_epoch_recycle – return an epoch record that may be used by caller

LIBRARY

Concurrency Kit (libck, -lck)

SYNOPSIS

In ck_epoch.h Ft ck_epoch_record_t * Fn ck_epoch_recycle ck_epoch_t *epoch

DESCRIPTION

The Fn 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 Fn 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);
    }
    /*
     * 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 Fa epoch , then the function will return NULL.

ERRORS

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

SEE ALSO

ck_epoch_init3, ck_epoch_register3, ck_epoch_unregister3, ck_epoch_poll3, ck_epoch_synchronize3, ck_epoch_reclaim3, ck_epoch_barrier3, ck_epoch_call3, ck_epoch_begin3, ck_epoch_end3

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

Index