static void *rcu_read_perf_test(void *arg)

{

    int i;

    long long n_reads_local = 0;



    rcu_register_thread();



    *(struct rcu_reader_data **)arg = &rcu_reader;

    atomic_inc(&nthreadsrunning);

    while (goflag == GOFLAG_INIT) {

        g_usleep(1000);

    }

    while (goflag == GOFLAG_RUN) {

        for (i = 0; i < RCU_READ_RUN; i++) {

            rcu_read_lock();

            rcu_read_unlock();

        }

        n_reads_local += RCU_READ_RUN;

    }

    atomic_add(&n_reads, n_reads_local);



    rcu_unregister_thread();

    return NULL;

}

static void *rcu_read_perf_test(void *arg)

{

    int i;

    long long n_reads_local = 0;



    rcu_register_thread();



    *(struct rcu_reader_data **)arg = &rcu_reader;

    atomic_inc(&nthreadsrunning);

    while (goflag == GOFLAG_INIT) {

        g_usleep(1000);

    }

    while (goflag == GOFLAG_RUN) {

        for (i = 0; i < RCU_READ_RUN; i++) {

            rcu_read_lock();

            rcu_read_unlock();

        }

        n_reads_local += RCU_READ_RUN;

    }

    atomic_add(&n_reads, n_reads_local);



    rcu_unregister_thread();

    return NULL;

}

static void *FUNC_0(void *VAR_0)

{

    int VAR_1;

    long long VAR_2 = 0;



    rcu_register_thread();



    *(struct rcu_reader_data **)VAR_0 = &rcu_reader;

    atomic_inc(&nthreadsrunning);

    while (goflag == GOFLAG_INIT) {

        g_usleep(1000);

    }

    while (goflag == GOFLAG_RUN) {

        for (VAR_1 = 0; VAR_1 < RCU_READ_RUN; VAR_1++) {

            rcu_read_lock();

            rcu_read_unlock();

        }

        VAR_2 += RCU_READ_RUN;

    }

    atomic_add(&n_reads, VAR_2);



    rcu_unregister_thread();

    return NULL;

}

static void *FUNC_0(void *VAR_0)
{ int VAR_1; long long VAR_2 = 0; rcu_register_thread(); *(struct rcu_reader_data **)VAR_0 = &rcu_reader; atomic_inc(&nthreadsrunning); while (goflag == GOFLAG_INIT) { g_usleep(1000); } while (goflag == GOFLAG_RUN) { for (VAR_1 = 0; VAR_1 < RCU_READ_RUN; VAR_1++) { rcu_read_lock(); rcu_read_unlock(); } VAR_2 += RCU_READ_RUN; } atomic_add(&n_reads, VAR_2); rcu_unregister_thread(); return NULL; }