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

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5060 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2012-08-28 14:40:12 +00:00
parent 8aa93837e2
commit 9019c148da
2 changed files with 15 additions and 2 deletions

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!

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
/****************************************************************************