Provided by: libck-dev_0.7.2-5ubuntu1_amd64 bug

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 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)