Changeset 508b0df1 in mainline for uspace/app/rcutest
- Timestamp:
- 2018-09-06T20:21:52Z (7 years ago)
- 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)
- File:
-
- 1 edited
-
uspace/app/rcutest/rcutest.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/rcutest/rcutest.c
r4621d23 r508b0df1 35 35 */ 36 36 37 #include < atomic.h>37 #include <stdatomic.h> 38 38 #include <stdio.h> 39 39 #include <stdlib.h> … … 618 618 619 619 typedef 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; 622 622 623 623 size_t total_workers; … … 630 630 size_t upd_iters; 631 631 632 atomic_ t seed;632 atomic_size_t seed; 633 633 int failed; 634 634 } seq_test_info_t; … … 651 651 rcu_register_fibril(); 652 652 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); 655 655 656 656 for (size_t k = 0; k < arg->read_iters; ++k) { … … 661 661 662 662 rcu_read_lock(); 663 atomic_count_t start_time = atomic_preinc(&arg->time);663 size_t start_time = atomic_fetch_add(&arg->time, 1); 664 664 665 665 /* Do some work. */ … … 677 677 * (but did not - since it already announced it completed). 678 678 */ 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)) { 680 680 arg->failed = 1; 681 681 } … … 695 695 696 696 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); 698 698 rcu_synchronize(); 699 699 700 700 /* 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_s et(&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); 703 703 } 704 704 } … … 716 716 717 717 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, 720 720 .read_iters = 10 * 1000, 721 721 .upd_iters = 5 * 1000, … … 725 725 .done_cnt_mtx = FIBRIL_MUTEX_INITIALIZER(info.done_cnt_mtx), 726 726 .done_cnt_changed = FIBRIL_CONDVAR_INITIALIZER(info.done_cnt_changed), 727 .seed = { 0 },727 .seed = 0, 728 728 .failed = 0, 729 729 };
Note:
See TracChangeset
for help on using the changeset viewer.
