*/
void *mremap(void *old_address, size_t old_size, size_t new_size, int flags)
{
- void *new_arena;
+ void *new_address;
assert(flags & MREMAP_MAYMOVE);
assert(!(flags & MREMAP_FIXED));
#define RCU_SLEEP_DELAY 1000
#define ARENA_INIT_ALLOC 16
+/*
+ * Active attempts to check for reader Q.S. before calling sleep().
+ */
+#define RCU_QS_ACTIVE_ATTEMPTS 100
+
void __attribute__((destructor)) rcu_bp_exit(void);
static pthread_mutex_t rcu_gp_lock = PTHREAD_MUTEX_INITIALIZER;
if (registry_arena.len
< registry_arena.used + sizeof(struct rcu_reader))
resize_arena(®istry_arena,
- max(registry_arena.len << 1, ARENA_INIT_ALLOC));
+ caa_max(registry_arena.len << 1, ARENA_INIT_ALLOC));
/*
* Find a free spot.
*/