Fix a *critical* bug in the task exit logic. Implements SIGCHILD

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5513 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2013-01-12 19:58:45 +00:00
parent dedeea59ae
commit fe6f52462d
118 changed files with 176 additions and 117 deletions
+23 -1
View File
@@ -334,6 +334,11 @@ defconfig -- This is a configuration file similar to the Linux
CONFIG_TASK_NAME_SIZE - Specifies that maximum size of a
task name to save in the TCB. Useful if scheduler
instrumentation is selected. Set to zero to disable.
CONFIG_SCHED_HAVE_PARENT - Remember the ID of the parent thread
when a new child thread is created. This support enables a
few minor features (such as SIGCHLD) and slightly increases
the size of the Task Control Block (TCB) of every task to hold
the ID of the parent thread. Default: disabled.
CONFIG_START_YEAR, CONFIG_START_MONTH, CONFIG_START_DAY -
Used to initialize the internal time logic.
CONFIG_GREGORIAN_TIME - Enables Gregorian time conversions.
@@ -400,7 +405,7 @@ defconfig -- This is a configuration file similar to the Linux
CONFIG_SCHED_WORKSTACKSIZE - The stack size allocated for the worker
thread. Default: CONFIG_IDLETHREAD_STACKSIZE.
CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
the worker thread. Default: 4
the worker thread. Default: 17
CONFIG_SCHED_LPWORK. If CONFIG_SCHED_WORKQUEUE is defined, then a single
work queue is created by default. If CONFIG_SCHED_LPWORK is also defined
then an additional, lower-priority work queue will also be created. This
@@ -426,6 +431,23 @@ defconfig -- This is a configuration file similar to the Linux
where 'app' is the application name. If not defined, CONFIG_USER_ENTRYPOINT
defaults to user_start.
Signal Numbers:
CONFIG_SIG_SIGUSR1 - Value of standard user signal 1 (SIGUSR1).
Default: 1
CONFIG_SIG_SIGUSR2 - Value of standard user signal 2 (SIGUSR2).
Default: 2
CONFIG_SIG_SIGALARM - Default the standard signal used with POSIX
timers (SIGALRM). Default: 3
CONFIG_SIG_SIGCHLD - The SIGCHLD signal is sent to the parent of a child
process when it exits, is interrupted (stopped), or resumes after being
interrupted. Default: 4
CONFIG_SIG_SIGCONDTIMEDOUT - This non-standard signal number is used in
the implementation of pthread_cond_timedwait(). Default 16.
CONFIG_SIG_SIGWORK - SIGWORK is a non-standard signal used to wake up
the internal NuttX worker thread. Default: 17.
Binary Loaders:
CONFIG_BINFMT_DISABLE - By default, support for loadable binary formats
is built.
+1 -1
View File
@@ -142,7 +142,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# Settings for nxflat
+1 -1
View File
@@ -168,7 +168,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -168,7 +168,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -273,7 +273,7 @@ CONFIG_SCHED_WORKQUEUE=y
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=2048
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
# CONFIG_SCHED_LPWORK is not set
CONFIG_SCHED_WAITPID=y
# CONFIG_SCHED_ATEXIT is not set
+1 -1
View File
@@ -142,7 +142,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=256
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -141,7 +141,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -141,7 +141,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -156,7 +156,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# OS setup related to on-demand paging:
+1 -1
View File
@@ -143,7 +143,7 @@ CONFIG_SCHED_WORKQUEUE=y
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -144,7 +144,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -142,7 +142,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -266,7 +266,7 @@ CONFIG_SCHED_WORKQUEUE=y
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
# CONFIG_SCHED_LPWORK is not set
CONFIG_SCHED_WAITPID=y
# CONFIG_SCHED_ATEXIT is not set
+1 -1
View File
@@ -194,7 +194,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -192,7 +192,7 @@ CONFIG_SCHED_WORKQUEUE=y
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -202,7 +202,7 @@ CONFIG_SCHED_WORKQUEUE=y
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
CONFIG_SCHED_WAITPID=y
CONFIG_SCHED_ATEXIT=n
+1 -1
View File
@@ -193,7 +193,7 @@ CONFIG_SCHED_WORKQUEUE=y
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# Settings for NXFLAT
+1 -1
View File
@@ -197,7 +197,7 @@ CONFIG_SCHED_WORKQUEUE=y
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# Settings for NXFLAT
+1 -1
View File
@@ -195,7 +195,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -195,7 +195,7 @@ CONFIG_SCHED_WORKQUEUE=y
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# Settings for NXFLAT
+1 -1
View File
@@ -204,7 +204,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -181,7 +181,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -187,7 +187,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -227,7 +227,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=2048
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
CONFIG_SCHED_WAITPID=y
CONFIG_SCHED_ATEXIT=n
+1 -1
View File
@@ -224,7 +224,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=2048
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
CONFIG_SCHED_WAITPID=n
CONFIG_SCHED_ATEXIT=n
+1 -1
View File
@@ -186,7 +186,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# Settings for nxflat
+1 -1
View File
@@ -189,7 +189,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -191,7 +191,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# Settings for nxflat
+1 -1
View File
@@ -184,7 +184,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# Settings for nxflat
+1 -1
View File
@@ -186,7 +186,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# Settings for nxflat
@@ -187,7 +187,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -186,7 +186,7 @@ CONFIG_SCHED_WORKQUEUE=y
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -181,7 +181,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -137,7 +137,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# Settings for nxflat
+1 -1
View File
@@ -200,7 +200,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
CONFIG_SCHED_WAITPID=y
CONFIG_SCHED_ATEXIT=n
+1 -1
View File
@@ -200,7 +200,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
CONFIG_SCHED_WAITPID=n
CONFIG_SCHED_ATEXIT=n
+1 -1
View File
@@ -190,7 +190,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
CONFIG_SCHED_WAITPID=n
CONFIG_SCHED_ATEXIT=n
+1 -1
View File
@@ -148,7 +148,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=256
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -182,7 +182,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -181,7 +181,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -182,7 +182,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -183,7 +183,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -192,7 +192,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
CONFIG_SCHED_WAITPID=y
#
+1 -1
View File
@@ -262,7 +262,7 @@ CONFIG_SCHED_WORKQUEUE=y
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
# CONFIG_SCHED_LPWORK is not set
# CONFIG_SCHED_WAITPID is not set
# CONFIG_SCHED_ATEXIT is not set
+1 -1
View File
@@ -192,7 +192,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -194,7 +194,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
CONFIG_SCHED_WAITPID=y
CONFIG_SCHED_ATEXIT=n
+1 -1
View File
@@ -197,7 +197,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
+1 -1
View File
@@ -187,7 +187,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# The following can be used to disable categories of
@@ -190,7 +190,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=2048
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# Settings for nxflat
+1 -1
View File
@@ -188,7 +188,7 @@ CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=50000
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SIG_SIGWORK=17
#
# Settings for nxflat

Some files were not shown because too many files have changed in this diff Show More