static void run_test(void)

{

    unsigned int remaining;

    int i;



    while (atomic_read(&n_ready_threads) != n_rw_threads + n_rz_threads) {

        cpu_relax();

    }

    atomic_mb_set(&test_start, true);

    do {

        remaining = sleep(duration);

    } while (remaining);

    atomic_mb_set(&test_stop, true);



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

        qemu_thread_join(&rw_threads[i]);

    }

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

        qemu_thread_join(&rz_threads[i]);

    }

}

static void run_test(void)

{

    unsigned int remaining;

    int i;



    while (atomic_read(&n_ready_threads) != n_rw_threads + n_rz_threads) {

        cpu_relax();

    }

    atomic_mb_set(&test_start, true);

    do {

        remaining = sleep(duration);

    } while (remaining);

    atomic_mb_set(&test_stop, true);



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

        qemu_thread_join(&rw_threads[i]);

    }

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

        qemu_thread_join(&rz_threads[i]);

    }

}

static void FUNC_0(void)

{

    unsigned int VAR_0;

    int VAR_1;



    while (atomic_read(&n_ready_threads) != n_rw_threads + n_rz_threads) {

        cpu_relax();

    }

    atomic_mb_set(&test_start, true);

    do {

        VAR_0 = sleep(duration);

    } while (VAR_0);

    atomic_mb_set(&test_stop, true);



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

        qemu_thread_join(&rw_threads[VAR_1]);

    }

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

        qemu_thread_join(&rz_threads[VAR_1]);

    }

}

static void FUNC_0(void)
{ unsigned int VAR_0; int VAR_1; while (atomic_read(&n_ready_threads) != n_rw_threads + n_rz_threads) { cpu_relax(); } atomic_mb_set(&test_start, true); do { VAR_0 = sleep(duration); } while (VAR_0); atomic_mb_set(&test_stop, true); for (VAR_1 = 0; VAR_1 < n_rw_threads; VAR_1++) { qemu_thread_join(&rw_threads[VAR_1]); } for (VAR_1 = 0; VAR_1 < n_rz_threads; VAR_1++) { qemu_thread_join(&rz_threads[VAR_1]); } }