X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=test_urcu_timing.c;h=cf70709c9fe7e58beaab0f2e3920391d06f43d02;hp=f97a5c1e3c9a15d3055c596a72a3d4d9e61d3fbc;hb=ebb22fff4a06b0661b55726ad332c4c53f6603fe;hpb=f4a486ac095bd844d0c18995737d589b8f085b69 diff --git a/test_urcu_timing.c b/test_urcu_timing.c index f97a5c1..cf70709 100644 --- a/test_urcu_timing.c +++ b/test_urcu_timing.c @@ -5,7 +5,19 @@ * * Copyright February 2009 - Mathieu Desnoyers * - * Distributed under GPLv2 + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include @@ -18,6 +30,7 @@ #include #include #include +#include #if defined(_syscall0) _syscall0(pid_t, gettid) @@ -34,22 +47,7 @@ static inline pid_t gettid(void) } #endif -#define rdtscll(val) do { \ - unsigned int __a,__d; \ - asm volatile("rdtsc" : "=a" (__a), "=d" (__d)); \ - (val) = ((unsigned long)__a) | (((unsigned long)__d)<<32); \ -} while(0) - -typedef unsigned long long cycles_t; - -static inline cycles_t get_cycles (void) -{ - unsigned long long ret = 0; - - rdtscll(ret); - return ret; -} - +#define _LGPL_SOURCE #include "urcu.h" pthread_mutex_t rcu_copy_mutex = PTHREAD_MUTEX_INITIALIZER; @@ -102,7 +100,7 @@ void *thr_reader(void *arg) "reader", pthread_self(), (unsigned long)gettid()); sleep(2); - urcu_register_thread(); + rcu_register_thread(); time1 = get_cycles(); for (i = 0; i < OUTER_READ_LOOP; i++) { @@ -117,7 +115,7 @@ void *thr_reader(void *arg) } time2 = get_cycles(); - urcu_unregister_thread(); + rcu_unregister_thread(); reader_time[(unsigned long)arg] = time2 - time1; @@ -145,7 +143,7 @@ void *thr_writer(void *arg) assert(old->a == 8); } new->a = 8; - old = urcu_publish_content(&test_rcu_pointer, new); + old = rcu_publish_content(&test_rcu_pointer, new); rcu_copy_mutex_unlock(); /* can be done after unlock */ if (old) {