Changeset 508b0df1 in mainline for uspace/app/rcutest


Ignore:
Timestamp:
2018-09-06T20:21:52Z (7 years ago)
Author:
Jiří Zárevúcky <jiri.zarevucky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
78de83de, fc10e1b
Parents:
4621d23
git-author:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-08-13 03:53:39)
git-committer:
Jiří Zárevúcky <jiri.zarevucky@…> (2018-09-06 20:21:52)
Message:

Remove uspace <atomic.h>, use <stdatomic.h> instead

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/rcutest/rcutest.c

    r4621d23 r508b0df1  
    3535 */
    3636
    37 #include <atomic.h>
     37#include <stdatomic.h>
    3838#include <stdio.h>
    3939#include <stdlib.h>
     
    618618
    619619typedef struct {
    620         atomic_t time;
    621         atomic_t max_start_time_of_done_sync;
     620        atomic_size_t time;
     621        atomic_size_t max_start_time_of_done_sync;
    622622
    623623        size_t total_workers;
     
    630630        size_t upd_iters;
    631631
    632         atomic_t seed;
     632        atomic_size_t seed;
    633633        int failed;
    634634} seq_test_info_t;
     
    651651        rcu_register_fibril();
    652652
    653         size_t seed = (size_t) atomic_preinc(&arg->seed);
    654         bool first = (seed == 1);
     653        size_t seed = atomic_fetch_add(&arg->seed, 1);
     654        bool first = (seed == 0);
    655655
    656656        for (size_t k = 0; k < arg->read_iters; ++k) {
     
    661661
    662662                rcu_read_lock();
    663                 atomic_count_t start_time = atomic_preinc(&arg->time);
     663                size_t start_time = atomic_fetch_add(&arg->time, 1);
    664664
    665665                /* Do some work. */
     
    677677                 * (but did not - since it already announced it completed).
    678678                 */
    679                 if (start_time <= atomic_get(&arg->max_start_time_of_done_sync)) {
     679                if (start_time <= atomic_load(&arg->max_start_time_of_done_sync)) {
    680680                        arg->failed = 1;
    681681                }
     
    695695
    696696        for (size_t k = 0; k < arg->upd_iters; ++k) {
    697                 atomic_count_t start_time = atomic_get(&arg->time);
     697                size_t start_time = atomic_load(&arg->time);
    698698                rcu_synchronize();
    699699
    700700                /* This is prone to a race but if it happens it errs to the safe side.*/
    701                 if (atomic_get(&arg->max_start_time_of_done_sync) < start_time) {
    702                         atomic_set(&arg->max_start_time_of_done_sync, start_time);
     701                if (atomic_load(&arg->max_start_time_of_done_sync) < start_time) {
     702                        atomic_store(&arg->max_start_time_of_done_sync, start_time);
    703703                }
    704704        }
     
    716716
    717717        seq_test_info_t info = {
    718                 .time = { 0 },
    719                 .max_start_time_of_done_sync = { 0 },
     718                .time = 0,
     719                .max_start_time_of_done_sync = 0,
    720720                .read_iters = 10 * 1000,
    721721                .upd_iters = 5 * 1000,
     
    725725                .done_cnt_mtx = FIBRIL_MUTEX_INITIALIZER(info.done_cnt_mtx),
    726726                .done_cnt_changed = FIBRIL_CONDVAR_INITIALIZER(info.done_cnt_changed),
    727                 .seed = { 0 },
     727                .seed = 0,
    728728                .failed = 0,
    729729        };
Note: See TracChangeset for help on using the changeset viewer.