Fix static linking: fix symbol name namespaces
[urcu.git] / urcu-bp.c
index 7c91e0a9ce8bb40b3ef688011cc0cc9cf933b536..b07a1bbed912a5998c1089a2237825d2801f7032 100644 (file)
--- a/urcu-bp.c
+++ b/urcu-bp.c
 #include <unistd.h>
 #include <sys/mman.h>
 
-#include "urcu/wfqueue.h"
+#include "urcu/wfcqueue.h"
 #include "urcu/map/urcu-bp.h"
 #include "urcu/static/urcu-bp.h"
 #include "urcu-pointer.h"
 #include "urcu/tls-compat.h"
 
+#include "urcu-die.h"
+
 /* Do not #define _LGPL_SOURCE to ensure we can emit the wrapper symbols */
 #undef _LGPL_SOURCE
 #include "urcu-bp.h"
@@ -103,8 +105,8 @@ void __attribute__((destructor)) rcu_bp_exit(void);
 static pthread_mutex_t rcu_gp_lock = PTHREAD_MUTEX_INITIALIZER;
 
 #ifdef DEBUG_YIELD
-unsigned int yield_active;
-DEFINE_URCU_TLS(unsigned int, rand_yield);
+unsigned int rcu_yield_active;
+DEFINE_URCU_TLS(unsigned int, rcu_rand_yield);
 #endif
 
 /*
@@ -142,17 +144,12 @@ static void mutex_lock(pthread_mutex_t *mutex)
 
 #ifndef DISTRUST_SIGNALS_EXTREME
        ret = pthread_mutex_lock(mutex);
-       if (ret) {
-               perror("Error in pthread mutex lock");
-               exit(-1);
-       }
+       if (ret)
+               urcu_die(ret);
 #else /* #ifndef DISTRUST_SIGNALS_EXTREME */
        while ((ret = pthread_mutex_trylock(mutex)) != 0) {
-               if (ret != EBUSY && ret != EINTR) {
-                       printf("ret = %d, errno = %d\n", ret, errno);
-                       perror("Error in pthread mutex lock");
-                       exit(-1);
-               }
+               if (ret != EBUSY && ret != EINTR)
+                       urcu_die(ret);
                poll(NULL,0,10);
        }
 #endif /* #else #ifndef DISTRUST_SIGNALS_EXTREME */
@@ -163,13 +160,11 @@ static void mutex_unlock(pthread_mutex_t *mutex)
        int ret;
 
        ret = pthread_mutex_unlock(mutex);
-       if (ret) {
-               perror("Error in pthread mutex unlock");
-               exit(-1);
-       }
+       if (ret)
+               urcu_die(ret);
 }
 
-void update_counter_and_wait(void)
+static void update_counter_and_wait(void)
 {
        CDS_LIST_HEAD(qsreaders);
        int wait_loops = 0;
@@ -439,7 +434,8 @@ void *rcu_dereference_sym_bp(void *p)
 void *rcu_set_pointer_sym_bp(void **p, void *v)
 {
        cmm_wmb();
-       return uatomic_set(p, v);
+       uatomic_set(p, v);
+       return v;
 }
 
 void *rcu_xchg_pointer_sym_bp(void **p, void *v)
This page took 0.023469 seconds and 4 git commands to generate.