Changeset 38d8849 in mainline for uspace/app/tester/float/float1.c


Ignore:
Timestamp:
2018-07-16T15:58:51Z (6 years ago)
Author:
Jiří Zárevúcky <jiri.zarevucky@…>
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)
Message:

Privatize <thread.h>.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/tester/float/float1.c

    rc124c985 r38d8849  
    3333#include <stddef.h>
    3434#include <atomic.h>
    35 #include <thread.h>
     35#include <fibril.h>
     36#include <fibril_synch.h>
    3637#include <inttypes.h>
    3738#include "../tester.h"
     
    4344#define PRECISION  100000000
    4445
    45 static atomic_t threads_finished;
     46static FIBRIL_SEMAPHORE_INITIALIZE(threads_finished, 0);
    4647static atomic_t threads_fault;
    4748
    48 static void e(void *data)
     49static errno_t e(void *data)
    4950{
    5051        for (unsigned int i = 0; i < ATTEMPTS; i++) {
     
    6465        }
    6566
    66         atomic_inc(&threads_finished);
     67        fibril_semaphore_up(&threads_finished);
     68        return EOK;
    6769}
    6870
     
    7173        atomic_count_t total = 0;
    7274
    73         atomic_set(&threads_finished, 0);
    7475        atomic_set(&threads_fault, 0);
     76        fibril_test_spawn_runners(THREADS);
    7577
    7678        TPRINTF("Creating threads");
    7779        for (unsigned int i = 0; i < THREADS; i++) {
    78                 if (thread_create(e, NULL, "e", NULL) != EOK) {
     80                fid_t f = fibril_create(e, NULL);
     81                if (!f) {
    7982                        TPRINTF("\nCould not create thread %u\n", i);
    8083                        break;
    8184                }
     85                fibril_detach(f);
     86                fibril_add_ready(f);
    8287
    8388                TPRINTF(".");
     
    8792        TPRINTF("\n");
    8893
    89         while (atomic_get(&threads_finished) < total) {
    90                 TPRINTF("Threads left: %" PRIua "\n",
    91                     total - atomic_get(&threads_finished));
    92                 thread_sleep(1);
     94        for (unsigned int i = 0; i < total; i++) {
     95                TPRINTF("Threads left: %" PRIua "\n", total - i);
     96                fibril_semaphore_down(&threads_finished);
    9397        }
    9498
Note: See TracChangeset for help on using the changeset viewer.