put thread offline while waiting for the init flag
[userspace-rcu.git] / urcu-bp.c
index 39a6cd0e9ab3ffe06f1d96eaeb889f77f692ac89..7412b5b6add6b0edfb4e7ca53966487fe9fb3664 100644 (file)
--- a/urcu-bp.c
+++ b/urcu-bp.c
@@ -78,6 +78,11 @@ void *mremap(void *old_address, size_t old_size, size_t new_size, int flags)
 #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;
@@ -295,7 +300,7 @@ static void add_thread(void)
        if (registry_arena.len
            < registry_arena.used + sizeof(struct rcu_reader))
                resize_arena(&registry_arena,
-               max(registry_arena.len << 1, ARENA_INIT_ALLOC));
+               caa_max(registry_arena.len << 1, ARENA_INIT_ALLOC));
        /*
         * Find a free spot.
         */
This page took 0.022263 seconds and 4 git commands to generate.