diff options
Diffstat (limited to 'src/test/test_spinlock.c')
-rw-r--r-- | src/test/test_spinlock.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/src/test/test_spinlock.c b/src/test/test_spinlock.c index 38186a975..4ceeea7b9 100644 --- a/src/test/test_spinlock.c +++ b/src/test/test_spinlock.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2015 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -38,7 +38,7 @@ #define PERINC 100000 #define LOOPS 47 -static SPIN_LOCK lock; +static struct spin_lock lock; static unsigned int val = 0; static volatile int32 done_threads = 0; @@ -60,13 +60,14 @@ static void *worker(void *p){ return NULL; }//end: worker() -int do_init(int argc, char **argv){ - rAthread *t[THRC]; +int do_init(int argc, char **argv) +{ + struct thread_handle *t[THRC]; int j, i; int ok; ShowStatus("==========\n"); - ShowStatus("TEST: %u Runs, (%u Threads)\n", LOOPS, THRC); + ShowStatus("TEST: %d Runs, (%d Threads)\n", LOOPS, THRC); ShowStatus("This can take a while\n"); ShowStatus("\n\n"); @@ -78,35 +79,35 @@ int do_init(int argc, char **argv){ InitializeSpinLock(&lock); for(i =0; i < THRC; i++){ - t[i] = rathread_createEx( worker, NULL, 1024*512, RAT_PRIO_NORMAL); + t[i] = thread->create_opt(worker, NULL, 1024*512, THREADPRIO_NORMAL); } + (void)t; while(1){ if(InterlockedCompareExchange(&done_threads, THRC, THRC) == THRC) break; - rathread_yield(); + thread->yield(); } FinalizeSpinLock(&lock); // Everything fine? if (val != (THRC*PERINC)) { - printf("FAILED! (Result: %u, Expected: %u)\n", val, (THRC*PERINC)); + printf("FAILED! (Result: %u, Expected: %d)\n", val, (THRC*PERINC)); } else { - printf("OK! (Result: %u, Expected: %u)\n", val, (THRC*PERINC)); + printf("OK! (Result: %u, Expected: %d)\n", val, (THRC*PERINC)); ok++; } } - if(ok != LOOPS){ + if (ok != LOOPS) { ShowFatalError("Test failed.\n"); exit(1); - }else{ - ShowStatus("Test passed.\n"); - exit(0); } - return 0; + + core->runflag = CORE_ST_STOP; + return EXIT_SUCCESS; }//end: do_init() void do_abort(void) { @@ -117,6 +118,8 @@ void set_server_type(void) { }//end: set_server_type() int do_final(void) { + ShowStatus("Test passed.\n"); + return EXIT_SUCCESS; }//end: do_final() |