/* Data used by both reader and synchronize_rcu() */
unsigned long ctr;
/* Data used for registry */
- struct list_head head __attribute__((aligned(CACHE_LINE_SIZE)));
+ struct list_head node __attribute__((aligned(CACHE_LINE_SIZE)));
pthread_t tid;
};
unsigned long v;
v = LOAD_SHARED(*ctr);
- return v && (v - rcu_gp_ctr > ULONG_MAX / 2);
+ return v && (v != rcu_gp_ctr);
}
#endif /* !(BITS_PER_LONG < 64) */