diff options
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/test/main.c | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/src/modules/test/main.c b/src/modules/test/main.c index 9e03ee8..d2a4692 100644 --- a/src/modules/test/main.c +++ b/src/modules/test/main.c @@ -2,20 +2,36 @@ #define FACTOR 4 +int obj = -1; + void thread2(void* d) { + printk("[module:test:2] Creating new object...\n"); + obj = object_create(); + struct user_request rq; while (1) { - printk("$"); - thread_sleep(35*FACTOR); + printk("[module:test:2] Waiting for a request...\n"); + request_get(obj, &rq, 1); + if (rq.isBlocking) { + printk("[module:test:2] Got request. Answering...\n"); + request_answer(obj, 42, 0); + } else { + printk("[module:test:2] Got message. Ignoring it.\n"); + } } } int main() { - printk("[module:test] Hi world !\n"); - printk("[module:test] Creating new thread...\n"); + printk("[module:test:1] Hi world !\n"); + printk("[module:test:1] Creating new thread...\n"); thread_new(thread2, 0); - while (1) { - printk("."); - thread_sleep(50*FACTOR); - } + while (obj == -1); + printk("[module:test:1] Object was created. Sending request...\n"); + struct user_sendrequest sr; + sr.func = 0x80000001; + request(obj, &sr); + printk("[module:test:1] Got answer. Sending message...\n"); + send_msg(obj, &sr); + printk("[module:test:1] HAHA !!! Death in 10 seconds!\n"); + thread_sleep(10000); return 0; } |