From a1f1d3e572a081f37793583bf1b55ceb83efd56d Mon Sep 17 00:00:00 2001 From: Stefan Lankes Date: Mon, 19 Sep 2011 10:10:02 +0200 Subject: [PATCH] minor optimizations --- kernel/tasks.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/kernel/tasks.c b/kernel/tasks.c index 60c8e412..7a8e61d9 100644 --- a/kernel/tasks.c +++ b/kernel/tasks.c @@ -162,6 +162,7 @@ static void wakeup_blocked_tasks(int result) /* wake up blocked tasks */ for(i=0; ioutbox[i]) { + //kprintf("Wake up blocked task %d\n", i); mailbox_wait_msg_post(curr_task->outbox[i], tmp); curr_task->outbox[i] = NULL; } @@ -325,7 +326,7 @@ create_task_out: int sys_fork(void) { int ret = -ENOMEM; - unsigned int i, core_id, fd_i; + unsigned int i, core_id; task_t* parent_task = per_core(current_task); vma_t** child; vma_t* parent; @@ -373,12 +374,7 @@ int sys_fork(void) /* init fildes_table */ task_table[i].fildes_table = kmalloc(sizeof(fildes_t)*NR_OPEN); - memset(task_table[i].fildes_table, 0x00, sizeof(fildes_t)*NR_OPEN); - - // copy filedescriptors - for (fd_i = 0; fd_i < NR_OPEN; fd_i++) { - task_table[i].fildes_table[fd_i].node = per_core(current_task)->fildes_table[fd_i].node; - } + memcpy(task_table[i].fildes_table, parent_task->fildes_table, sizeof(fildes_t)*NR_OPEN); mailbox_wait_msg_init(&task_table[i].inbox); memset(task_table[i].outbox, 0x00, sizeof(mailbox_wait_msg_t*)*MAX_TASKS);