Add some protection to the priority inheritance logic when sem_post() is called from an interrupt handler

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@5060 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo
2012-08-28 14:40:12 +00:00
parent 064743fe72
commit bbe3db55f2
7 changed files with 262 additions and 93 deletions
+5
View File
@@ -285,4 +285,9 @@
list (contributed by Kate).
* apps/nshlib/nsh_parse.c: CONFIG_NSH_DISABLE_WGET not CONFIG_NSH_DISABLE_GET
in one location (found by Kate).
* apps/examples/ostest/prioinherit.c: Limit the number of test
threds to no more than 3 of each priority. Bad things happen
when the existing logic tried to created several hundred test
treads!
+10 -2
View File
@@ -59,20 +59,28 @@
# define CONFIG_SEM_PREALLOCHOLDERS 0
#endif
/* If resources were configured for lots of holders, then run 3 low priority
* threads. Otherwise, just one.
*/
#if CONFIG_SEM_PREALLOCHOLDERS > 3
# define NLOWPRI_THREADS 3
#else
# define NLOWPRI_THREADS (CONFIG_SEM_PREALLOCHOLDERS+1)
# define NLOWPRI_THREADS 1
#endif
#ifndef CONFIG_SEM_NNESTPRIO
# define CONFIG_SEM_NNESTPRIO 0
#endif
/* Where resources configured for lots of waiters? If so then run 3 high
* priority threads. Otherwise, just one.
*/
#if CONFIG_SEM_NNESTPRIO > 3
# define NHIGHPRI_THREADS 3
#else
# define NHIGHPRI_THREADS (CONFIG_SEM_NNESTPRIO+1)
# define NHIGHPRI_THREADS 1
#endif
/****************************************************************************