Changeset 96348adc in mainline for kernel/test/thread/thread1.c


Ignore:
Timestamp:
2006-12-12T17:24:58Z (17 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7e13972
Parents:
34db7fa
Message:

cleanup tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/test/thread/thread1.c

    r34db7fa r96348adc  
    4040#define THREADS 5
    4141
     42static atomic_t finish;
     43static atomic_t threads_finished;
     44
    4245static void threadtest(void *data)
    4346{
    44 
    4547        thread_detach(THREAD); 
    4648
    47         while (1)
    48                 printf("%d\n",(int)(THREAD->tid));
     49        while (atomic_get(&finish)) {
     50                printf("%d\n", (int) (THREAD->tid));
     51                thread_usleep(100);
     52        }
     53        atomic_inc(&threads_finished);
    4954}
    5055
    51 void test_thread1(void)
     56char * test_thread1(void)
    5257{
    53         thread_t *t;
    54         int i;
     58        unsigned int i, total = 0;
     59       
     60        atomic_set(&finish, 1);
     61        atomic_set(&threads_finished, 0);
    5562
    56         for (i=0; i<THREADS; i++) { 
    57                 if (!(t = thread_create(threadtest, NULL, TASK, 0, "threadtest")))
    58                         panic("could not create thread\n");
     63        for (i = 0; i < THREADS; i++) { 
     64                thread_t *t;
     65                if (!(t = thread_create(threadtest, NULL, TASK, 0, "threadtest"))) {
     66                        printf("Could not create thread %d\n", i);
     67                        break;
     68                }
    5969                thread_ready(t);
     70                total++;
    6071        }
    61         printf("ok\n");
     72       
     73        printf("Running threads for 10 seconds...\n");
     74        thread_sleep(10);
     75       
     76        atomic_set(&finish, 0);
     77        while (atomic_get(&threads_finished) < total) {
     78                printf("Threads left: %d\n", total - atomic_get(&threads_finished));
     79                thread_sleep(1);
     80        }
     81       
     82        return NULL;
    6283}
Note: See TracChangeset for help on using the changeset viewer.