64d8249895
Instead of using a volatile storage for the address environment in the binfmt / loadinfo structures, always allocate the address environment from kheap. This serves two purposes: - If the task creation fails, any kernel thread that depends on the address environment created during task creation will not lose their mappings (because they hold a reference to it) - The current address environment variable (g_addrenv) will NEVER contain a stale / incorrect value - Releasing the address environment is simplified as any pointer given to addrenv_drop() can be assumed to be heap memory - Makes the kludge function addrenv_clear_current irrelevant, as the system will NEVER have invalid mappings any more |
||
---|---|---|
.. | ||
exit.c | ||
Make.defs | ||
spawn.h | ||
task_activate.c | ||
task_cancelpt.c | ||
task_create.c | ||
task_delete.c | ||
task_execve.c | ||
task_exit.c | ||
task_exithook.c | ||
task_getgroup.c | ||
task_getpid.c | ||
task_getppid.c | ||
task_gettid.c | ||
task_init.c | ||
task_posixspawn.c | ||
task_prctl.c | ||
task_recover.c | ||
task_reparent.c | ||
task_restart.c | ||
task_setcancelstate.c | ||
task_setcanceltype.c | ||
task_setup.c | ||
task_spawn.c | ||
task_spawnparms.c | ||
task_start.c | ||
task_starthook.c | ||
task_terminate.c | ||
task_testcancel.c | ||
task_tls_alloc.c | ||
task_vfork.c | ||
task.h |