Example #1
0
void tests_flag(void)
{
    unsigned myid = my_cpu_info()->cpu_id;
    static flag_t flag = FLAG_INITIALIZER;
    
    barrier(&global_barrier);

    if (myid == 0) {
        udelay(1000000);
        printf("[0] signal flag\n");
        flag_signal(&flag);

        udelay(1000000);
        printf("[0] signal second flag\n");
        flag_signal(&flag);

        udelay(2000000);
        printf("[0] signal third flag\n");
        flag_signal(&flag);

    } else if (myid == 1) {
        flag_wait(&flag);
        printf("[1] detected flag\n");
        flag_wait(&flag);
        printf("[1] detected second flag\n");

        while (!flag_trywait(&flag)) {
            udelay(100000);
            printf("z");
        }
        printf("[1] detected third flag\n");

    }

}
Example #2
0
File: target.c Project: sjbiwa/bwos
void task5(void)
{
	task_sleep();
	lprintf("start task5\n");

	for (;;) {
		flag_wait(&wait_flag);
		lprintf("wakeup task5\n");
	}
}