diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-01-12 19:58:45 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2013-01-12 19:58:45 +0000 |
commit | b58281cab8add0af82167282126132b069170dd6 (patch) | |
tree | 84c6da5c61268158365bdafe58f546b34a0b8a91 /nuttx/ChangeLog | |
parent | db161f73bc2608dbb8ad8c022609198f7f0b3f95 (diff) | |
download | px4-firmware-b58281cab8add0af82167282126132b069170dd6.tar.gz px4-firmware-b58281cab8add0af82167282126132b069170dd6.tar.bz2 px4-firmware-b58281cab8add0af82167282126132b069170dd6.zip |
Fix a *critical* bug in the task exit logic. Implements SIGCHILD
git-svn-id: http://svn.code.sf.net/p/nuttx/code/trunk@5513 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/ChangeLog')
-rw-r--r-- | nuttx/ChangeLog | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index 40a24d8f1..921b7014b 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -3911,3 +3911,14 @@ lib_fread() was passed a bad stream. Needed to move the releasing of a semaphore inside of some conditional logic (cosmetic). + * include/nuttx/sched.h, sched/task_setup.c, and sched/task_exithook.c: + Add support for remembering the parent task and sending + SIGCHLD to the parent when the task exists. + * sched/task_exithook.c: Fixed a *critical* bug. Here is + the scenario: (1) sched_lock() is called increments the lockcount + on the current TCB (i.e., the one at the head of the ready to run + list), (2) sched_mergepending is called which may change the task + at the head of the readytorun list, then (2) sched_lock() is called + which decrements the lockcount on the wrong TCB. The failure case + that I saw was that pre-emption got disabled in the IDLE thread, + locking up the whole system. |