logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

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

See Also