diff --git a/include/ck_epoch.h b/include/ck_epoch.h index f332048..241c454 100644 --- a/include/ck_epoch.h +++ b/include/ck_epoch.h @@ -243,8 +243,9 @@ ck_epoch_write_begin(struct ck_epoch_record *record) CK_CC_INLINE static void ck_epoch_read_begin(struct ck_epoch_record *record) { - unsigned int g_epoch = ck_pr_load_uint(&global->epoch) & (CK_EPOCH_LENGTH - 1); + unsigned int g_epoch = ck_pr_load_uint(&record->global->epoch); + g_epoch &= CK_EPOCH_LENGTH - 1; ck_pr_store_uint(&record->epoch, g_epoch); ck_pr_store_uint(&record->active, 1); ck_pr_fence_store();