Changeset a35b458 in mainline for kernel/test/synch/semaphore1.c
- Timestamp:
- 2018-03-02T20:10:49Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/test/synch/semaphore1.c
r3061bc1 ra35b458 49 49 { 50 50 thread_detach(THREAD); 51 51 52 52 waitq_sleep(&can_start); 53 53 54 54 semaphore_down(&sem); 55 55 atomic_inc(&items_produced); … … 61 61 { 62 62 thread_detach(THREAD); 63 63 64 64 waitq_sleep(&can_start); 65 65 66 66 semaphore_down(&sem); 67 67 atomic_inc(&items_consumed); … … 75 75 atomic_count_t consumers; 76 76 atomic_count_t producers; 77 77 78 78 waitq_initialize(&can_start); 79 79 semaphore_initialize(&sem, AT_ONCE); 80 80 81 81 for (i = 1; i <= 3; i++) { 82 82 thread_t *thrd; 83 83 84 84 atomic_set(&items_produced, 0); 85 85 atomic_set(&items_consumed, 0); 86 86 87 87 consumers = i * CONSUMERS; 88 88 producers = (4 - i) * PRODUCERS; 89 89 90 90 TPRINTF("Creating %" PRIua " consumers and %" PRIua " producers...", 91 91 consumers, producers); 92 92 93 93 for (j = 0; j < (CONSUMERS + PRODUCERS) / 2; j++) { 94 94 for (k = 0; k < i; k++) { … … 109 109 } 110 110 } 111 111 112 112 TPRINTF("ok\n"); 113 113 114 114 thread_sleep(1); 115 115 waitq_wakeup(&can_start, WAKEUP_ALL); 116 116 117 117 while ((items_consumed.count != consumers) || (items_produced.count != producers)) { 118 118 TPRINTF("%" PRIua " consumers remaining, %" PRIua " producers remaining\n", … … 121 121 } 122 122 } 123 123 124 124 return NULL; 125 125 }
Note:
See TracChangeset
for help on using the changeset viewer.