summaryrefslogtreecommitdiffstats
path: root/src/sys/init/init_main.C
blob: efeddcafd140ab1069770c8236d16b8b3c8b3888 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <kernel/console.H>  // TODO : Remove this.

#include <sys/task.h>
#include <sys/mutex.h>

mutex_t global_mutex;

void init_child(void* unused)
{
    mutex_lock(global_mutex);
    printk("Here I am %d\n", task_gettid());
    mutex_unlock(global_mutex);
    task_end();
}

void init_main(void* unused)
{
    printk("Starting init!\n");

    global_mutex = mutex_create();

    while(1)
    {
	mutex_lock(global_mutex);
	int t = task_create(&init_child, NULL);
	printk("Created child %d\n", t);
	for (volatile int i = 0 ; i < 10000000; i++);
	mutex_unlock(global_mutex);
    }
}
OpenPOWER on IntegriCloud