mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
* test_suite: add test_thread_sleep 2/2
This commit is contained in:
parent
efeaebd096
commit
97e7a80260
@ -6,7 +6,7 @@
|
||||
|
||||
SubDir TOP projects test_suite ;
|
||||
|
||||
Module test_suite : test_suite.c mutex_trylock_fail.c
|
||||
: shell posix_io ps uart0 ;
|
||||
Module test_suite : test_suite.c mutex_trylock_fail.c thread_sleep.c
|
||||
: shell posix_io ps uart0 hwtimer ;
|
||||
|
||||
UseModule test_suite ;
|
||||
|
40
projects/test_suite/thread_sleep.c
Normal file
40
projects/test_suite/thread_sleep.c
Normal file
@ -0,0 +1,40 @@
|
||||
#include <stdio.h>
|
||||
#include <thread.h>
|
||||
#include <kernel.h>
|
||||
|
||||
static int integer = 0;
|
||||
static int i = 0;
|
||||
|
||||
static void second_thread(void) {
|
||||
while(1) {
|
||||
integer++;
|
||||
printf("sleeper: running. integer=%i, i=%i.\n", integer, i);
|
||||
if (integer % 10 == 0) {
|
||||
printf("Going to sleep.\n");
|
||||
thread_sleep();
|
||||
printf("Woke up!\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static char second_thread_stack[KERNEL_CONF_STACKSIZE_DEFAULT*2];
|
||||
static tcb second_thread_tcb;
|
||||
|
||||
void test_thread_sleep(char* line)
|
||||
{
|
||||
int pid = thread_create(&second_thread_tcb, second_thread_stack, sizeof(second_thread_stack), PRIORITY_MAIN-1, CREATE_STACKTEST | CREATE_SLEEPING | CREATE_WOUT_YIELD, second_thread, "sleeper");
|
||||
|
||||
if (pid < 0) {
|
||||
puts("Error creating second_thread! Stopping test.");
|
||||
while(1);
|
||||
}
|
||||
|
||||
while(1) {
|
||||
i++;
|
||||
printf(" main: running. integer=%i, i=%i.\n", integer, i);
|
||||
if (i % 10 == 0) {
|
||||
printf("Waking up sleeper.\n");
|
||||
thread_wakeup(pid);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user