Update TODO list.
This commit is contained in:
parent
96d638d277
commit
3e8bd2b5dc
13
TODO
13
TODO
@ -420,10 +420,11 @@ o Task/Scheduler (sched/)
|
|||||||
Title: DAEMONIZE ELF PROGRAM
|
Title: DAEMONIZE ELF PROGRAM
|
||||||
Description: It is a common practice to "daemonize" to detach a task from
|
Description: It is a common practice to "daemonize" to detach a task from
|
||||||
its parent. This is used with NSH, for example, so that NSH
|
its parent. This is used with NSH, for example, so that NSH
|
||||||
will stall, waiting in waitpid() for the child task to exit.
|
will not stall, waiting in waitpid() for the child task to
|
||||||
|
exit.
|
||||||
|
|
||||||
Daemonization is done to creating a new task which continues
|
Daemonization is done to creating a new task which continues
|
||||||
to run while the origin task exits (sending the SIGCHLD
|
to run while the original task exits (sending the SIGCHLD
|
||||||
signal to the parent and awakening waitpid()). In a pure
|
signal to the parent and awakening waitpid()). In a pure
|
||||||
POSIX system, this is down with fork(), perhaps like:
|
POSIX system, this is down with fork(), perhaps like:
|
||||||
|
|
||||||
@ -432,11 +433,11 @@ o Task/Scheduler (sched/)
|
|||||||
exit();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
but is usually down with task_create() in NuttX. But when
|
but is usually done with task_create() in NuttX. But when
|
||||||
task_create() is called from within an ELF program, a very
|
task_create() is called from within an ELF program, a very
|
||||||
perverse situation is created.
|
perverse situation is created:
|
||||||
|
|
||||||
The basic problem is address environments and task groups:
|
The basic problem involves address environments and task groups:
|
||||||
"Task groups" are emulations of Linux processes. For the
|
"Task groups" are emulations of Linux processes. For the
|
||||||
case of the FLAT, ELF module, the address environment is
|
case of the FLAT, ELF module, the address environment is
|
||||||
allocated memory that contains the ELF module.
|
allocated memory that contains the ELF module.
|
||||||
@ -454,7 +455,7 @@ o Task/Scheduler (sched/)
|
|||||||
|
|
||||||
When ELF program exits, the address environment is destroyed
|
When ELF program exits, the address environment is destroyed
|
||||||
and the other task running in the same address environment is
|
and the other task running in the same address environment is
|
||||||
running in stale memory and will eventually crash.
|
then running in stale memory and will eventually crash.
|
||||||
|
|
||||||
Nothing special happens when the other created task running
|
Nothing special happens when the other created task running
|
||||||
in the allocated address environment exits since has no such
|
in the allocated address environment exits since has no such
|
||||||
|
Loading…
Reference in New Issue
Block a user