X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=urcu.c;h=d4a06844885cde3da2d03092e3e9c45a939e0438;hb=128166c908bfaa915c76e060522abd20241ac69c;hp=5514b278e4322b0f600a6d3427eab700057dc573;hpb=e7b43771a592802ff480a488afcfaf485f1a72aa;p=urcu.git diff --git a/urcu.c b/urcu.c index 5514b27..d4a0684 100644 --- a/urcu.c +++ b/urcu.c @@ -19,17 +19,21 @@ pthread_mutex_t urcu_mutex = PTHREAD_MUTEX_INITIALIZER; -/* Global grace period counter */ -int urcu_gp_ctr; +/* + * Global grace period counter. + * Contains the current RCU_GP_CTR_BIT. + * Also has a RCU_GP_CTR_BIT of 1, to accelerate the reader fast path. + */ +long urcu_gp_ctr = RCU_GP_COUNT; -int __thread urcu_active_readers; +long __thread urcu_active_readers; /* Thread IDs of registered readers */ #define INIT_NUM_THREADS 4 struct reader_data { pthread_t tid; - int *urcu_active_readers; + long *urcu_active_readers; }; #ifdef DEBUG_YIELD