From 4e0d89e67a0486b9b0d628f8385275a582f12cee Mon Sep 17 00:00:00 2001 From: Marian Ohligs Date: Thu, 15 Sep 2011 08:19:03 +0200 Subject: [PATCH] - tidy up memory on do_exit --- kernel/tasks.c | 4 ++++ kernel/tests.c | 14 +++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/kernel/tasks.c b/kernel/tasks.c index 11e24e18..53186cbe 100644 --- a/kernel/tasks.c +++ b/kernel/tasks.c @@ -191,6 +191,10 @@ static void NORETURN do_exit(int arg) { kfree((void*) tmp, sizeof(vma_t)); } + //remove fildes_table + if(!curr_task->fildes_table) + kfree(curr_task->fildes_table, sizeof(fildes_t)*NR_OPEN); + spinlock_unlock(&curr_task->vma_lock); drop_pgd(); // delete page directory and its page tables diff --git a/kernel/tests.c b/kernel/tests.c index 764b7b7b..4666c8a0 100644 --- a/kernel/tests.c +++ b/kernel/tests.c @@ -404,10 +404,10 @@ void* client_task(void* e) int test_init(void) { -// char* argv[] = {"/bin/mshell", NULL}; + char* argv[] = {"/bin/mshell", NULL}; // char* argv[] = {"/bin/tests", NULL}; - char* server_argv[] = {"/bin/server", "6789", NULL}; - char* client_argv[] = {"/bin/client", "127.0.0.1", "6789", NULL}; +// char* server_argv[] = {"/bin/server", "6789", NULL}; +// char* client_argv[] = {"/bin/client", "127.0.0.1", "6789", NULL}; //sem_init(&producing, 1); //sem_init(&consuming, 0); @@ -435,11 +435,11 @@ int test_init(void) //create_kernel_task(NULL, mail_noise, NULL, NORMAL_PRIO); //create_kernel_task(NULL, svm_test, NULL, NORMAL_PRIO); //create_user_task(NULL, "/bin/hello", argv); - //create_user_task(NULL, "/bin/mshell", argv); + create_user_task(NULL, "/bin/mshell", argv); //create_user_task(NULL, "/bin/jacobi", argv); - create_user_task(NULL, "/bin/server", server_argv); - sleep(5); - create_user_task(NULL, "/bin/client", client_argv); + //create_user_task(NULL, "/bin/server", server_argv); + //sleep(5); + //create_user_task(NULL, "/bin/client", client_argv); return 0; }