tests/mutex_unlock_and_sleep: replace modulo to speed up tests on wsn430

Doing a 32 bit modulo is really slow on wsn430, even when changing to a power of
two modulo.

Replace modulo by a double counter.
This commit is contained in:
Gaëtan Harter 2018-05-08 11:34:42 +02:00
parent 736c757b80
commit 2dfb5847f3
No known key found for this signature in database
GPG Key ID: 76DF6BCF1B1F883B

View File

@ -27,6 +27,8 @@ static volatile int indicator;
static kernel_pid_t main_pid; static kernel_pid_t main_pid;
static char stack[THREAD_STACKSIZE_DEFAULT]; static char stack[THREAD_STACKSIZE_DEFAULT];
static const unsigned KITERATIONS = 100;
static void *second_thread(void *arg) static void *second_thread(void *arg)
{ {
(void) arg; (void) arg;
@ -42,6 +44,7 @@ static void *second_thread(void *arg)
int main(void) int main(void)
{ {
uint32_t count = 0; uint32_t count = 0;
uint32_t kcount = 0;
indicator = 0; indicator = 0;
main_pid = thread_getpid(); main_pid = thread_getpid();
@ -64,8 +67,10 @@ int main(void)
printf("[ERROR] threads did not sleep properly (%d).\n", indicator); printf("[ERROR] threads did not sleep properly (%d).\n", indicator);
return 1; return 1;
} }
if ((count % 100000) == 0) { if (count == (KITERATIONS * 1000)) {
printf("[ALIVE] alternated %"PRIu32"k times.\n", (count / 1000)); count = 0;
kcount += KITERATIONS;
printf("[ALIVE] alternated %"PRIu32"k times.\n", kcount);
} }
mutex_unlock_and_sleep(&mutex); mutex_unlock_and_sleep(&mutex);
} }