Changeset 38d8849 in mainline for uspace/app/tester/thread/thread1.c
- Timestamp:
- 2018-07-16T15:58:51Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- db51219f
- Parents:
- c124c985
- git-author:
- Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-14 16:53:46)
- git-committer:
- Jiří Zárevúcky <jiri.zarevucky@…> (2018-07-16 15:58:51)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/tester/thread/thread1.c
rc124c985 r38d8849 33 33 #include <atomic.h> 34 34 #include <errno.h> 35 #include <thread.h> 35 #include <fibril.h> 36 #include <fibril_synch.h> 36 37 #include <stdio.h> 37 38 #include <stddef.h> … … 40 41 41 42 static atomic_t finish; 42 static atomic_t threads_finished;43 43 44 static void threadtest(void *data) 44 static FIBRIL_SEMAPHORE_INITIALIZE(threads_finished, 0); 45 46 static errno_t threadtest(void *data) 45 47 { 46 thread_detach(thread_get_id());48 fibril_detach(fibril_get_id()); 47 49 48 50 while (atomic_get(&finish)) 49 thread_usleep(100000);51 fibril_usleep(100000); 50 52 51 atomic_inc(&threads_finished); 53 fibril_semaphore_up(&threads_finished); 54 return EOK; 52 55 } 53 56 … … 58 61 59 62 atomic_set(&finish, 1); 60 atomic_set(&threads_finished, 0); 63 64 fibril_test_spawn_runners(THREADS); 61 65 62 66 TPRINTF("Creating threads"); 63 67 for (i = 0; i < THREADS; i++) { 64 if (thread_create(threadtest, NULL, "threadtest", NULL) != EOK) { 68 fid_t f = fibril_create(threadtest, NULL); 69 if (!f) { 65 70 TPRINTF("\nCould not create thread %u\n", i); 66 71 break; 67 72 } 73 fibril_add_ready(f); 68 74 TPRINTF("."); 69 75 total++; … … 71 77 72 78 TPRINTF("\nRunning threads for %u seconds...", DELAY); 73 thread_sleep(DELAY);79 fibril_sleep(DELAY); 74 80 TPRINTF("\n"); 75 81 76 82 atomic_set(&finish, 0); 77 while (atomic_get(&threads_finished) < total) {83 for (i = 0; i < total; i++) { 78 84 TPRINTF("Threads left: %" PRIua "\n", 79 total - atomic_get(&threads_finished));80 thread_sleep(1);85 total - i); 86 fibril_semaphore_down(&threads_finished); 81 87 } 82 88
Note:
See TracChangeset
for help on using the changeset viewer.