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; }