|
|
@ -100,8 +100,15 @@ ck_epoch_begin(ck_epoch_t *epoch, ck_epoch_record_t *record)
|
|
|
|
* For this reason, store to load serialization is necessary.
|
|
|
|
* For this reason, store to load serialization is necessary.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
ck_pr_store_uint(&record->epoch, g_epoch);
|
|
|
|
ck_pr_store_uint(&record->epoch, g_epoch);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if defined(__x86__) || defined(__x86_64__)
|
|
|
|
|
|
|
|
ck_pr_fas_uint(&record->active, 1);
|
|
|
|
|
|
|
|
ck_pr_fence_atomic_load();
|
|
|
|
|
|
|
|
#else
|
|
|
|
ck_pr_store_uint(&record->active, 1);
|
|
|
|
ck_pr_store_uint(&record->active, 1);
|
|
|
|
ck_pr_fence_store_load();
|
|
|
|
ck_pr_fence_store_load();
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|