Changeset 508b0df1 in mainline for uspace/app
- 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)
- Location:
- uspace/app
- Files:
-
- 4 edited
-
rcutest/rcutest.c (modified) (9 diffs)
-
tester/float/float1.c (modified) (5 diffs)
-
tester/thread/thread1.c (modified) (5 diffs)
-
wavplay/main.c (modified) (6 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 }; -
uspace/app/tester/float/float1.c
r4621d23 r508b0df1 32 32 #include <stdlib.h> 33 33 #include <stddef.h> 34 #include < atomic.h>34 #include <stdatomic.h> 35 35 #include <fibril.h> 36 36 #include <fibril_synch.h> … … 45 45 46 46 static FIBRIL_SEMAPHORE_INITIALIZE(threads_finished, 0); 47 static atomic_ t threads_fault;47 static atomic_int threads_fault; 48 48 49 49 static errno_t e(void *data) … … 60 60 61 61 if ((uint32_t) (e * PRECISION) != E_10E8) { 62 atomic_ inc(&threads_fault);62 atomic_fetch_add(&threads_fault, 1); 63 63 break; 64 64 } … … 71 71 const char *test_float1(void) 72 72 { 73 atomic_count_t total = 0;73 int total = 0; 74 74 75 atomic_s et(&threads_fault, 0);75 atomic_store(&threads_fault, 0); 76 76 fibril_test_spawn_runners(THREADS); 77 77 … … 92 92 TPRINTF("\n"); 93 93 94 for ( unsignedint i = 0; i < total; i++) {95 TPRINTF("Threads left: % " PRIua "\n", total - i);94 for (int i = 0; i < total; i++) { 95 TPRINTF("Threads left: %d\n", total - i); 96 96 fibril_semaphore_down(&threads_finished); 97 97 } 98 98 99 if (atomic_ get(&threads_fault) == 0)99 if (atomic_load(&threads_fault) == 0) 100 100 return NULL; 101 101 -
uspace/app/tester/thread/thread1.c
r4621d23 r508b0df1 31 31 #define DELAY 10 32 32 33 #include < atomic.h>33 #include <stdatomic.h> 34 34 #include <errno.h> 35 35 #include <fibril.h> … … 40 40 #include "../tester.h" 41 41 42 static atomic_ tfinish;42 static atomic_bool finish; 43 43 44 44 static FIBRIL_SEMAPHORE_INITIALIZE(threads_finished, 0); … … 48 48 fibril_detach(fibril_get_id()); 49 49 50 while ( atomic_get(&finish))50 while (!atomic_load(&finish)) 51 51 fibril_usleep(100000); 52 52 … … 57 57 const char *test_thread1(void) 58 58 { 59 unsigned int i; 60 atomic_count_t total = 0; 59 int total = 0; 61 60 62 atomic_s et(&finish, 1);61 atomic_store(&finish, false); 63 62 64 63 fibril_test_spawn_runners(THREADS); 65 64 66 65 TPRINTF("Creating threads"); 67 for (i = 0; i < THREADS; i++) {66 for (int i = 0; i < THREADS; i++) { 68 67 fid_t f = fibril_create(threadtest, NULL); 69 68 if (!f) { … … 80 79 TPRINTF("\n"); 81 80 82 atomic_set(&finish, 0); 83 for (i = 0; i < total; i++) { 84 TPRINTF("Threads left: %" PRIua "\n", 85 total - i); 81 atomic_store(&finish, true); 82 for (int i = 0; i < total; i++) { 83 TPRINTF("Threads left: %d\n", total - i); 86 84 fibril_semaphore_down(&threads_finished); 87 85 } -
uspace/app/wavplay/main.c
r4621d23 r508b0df1 35 35 36 36 #include <assert.h> 37 #include < atomic.h>37 #include <stdatomic.h> 38 38 #include <errno.h> 39 39 #include <fibril_synch.h> … … 189 189 typedef struct { 190 190 hound_context_t *ctx; 191 atomic_ t *count;191 atomic_int *count; 192 192 const char *file; 193 193 } fib_play_t; … … 203 203 fib_play_t *p = arg; 204 204 const errno_t ret = hplay_ctx(p->ctx, p->file); 205 atomic_ dec(p->count);205 atomic_fetch_sub(p->count, 1); 206 206 free(arg); 207 207 return ret; … … 279 279 /* Init parallel playback variables */ 280 280 hound_context_t *hound_ctx = NULL; 281 atomic_t playcount; 282 atomic_set(&playcount, 0); 281 atomic_int playcount = 0; 283 282 284 283 /* Init parallel playback context if necessary */ … … 332 331 data->ctx = hound_ctx; 333 332 fid_t fid = fibril_create(play_wrapper, data); 334 atomic_ inc(&playcount);333 atomic_fetch_add(&playcount, 1); 335 334 fibril_add_ready(fid); 336 335 } else { … … 341 340 342 341 /* Wait for all fibrils to finish */ 343 while (atomic_ get(&playcount) > 0)342 while (atomic_load(&playcount) > 0) 344 343 fibril_usleep(1000000); 345 344
Note:
See TracChangeset
for help on using the changeset viewer.
