Changes in kernel/test/synch/semaphore1.c [6eef3c4:a35b458] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/test/synch/semaphore1.c
r6eef3c4 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.