Skip to content
Snippets Groups Projects
Commit 961837ea authored by Gregory Nutt's avatar Gregory Nutt
Browse files

Fix an assertion

parent 44450511
No related branches found
No related tags found
No related merge requests found
......@@ -4868,3 +4868,5 @@
the SAM4L (2013-6-2).
* libc/stdio/lib_dprintd.c and lib_vdprintf.c: Add dprintf() and
vdprintf() (the latter from Andrew Tridgell, 2013-6-2).
* sched/sem_holder.c: Modify assertion that is reported to cause
false alarm assertions (2013-6-2).
......@@ -37,7 +37,7 @@
# This first group of C files do not depend on having file descriptors or
# C streams.
CSRCS += lib_fileno.c lib_printf.c lib_syslog.c lib_lowsyslog.c\
CSRCS += lib_fileno.c lib_printf.c lib_syslog.c lib_lowsyslog.c \
lib_sprintf.c lib_asprintf.c lib_snprintf.c lib_libsprintf.c \
lib_vsprintf.c lib_avsprintf.c lib_vsnprintf.c lib_libvsprintf.c \
lib_dprintf.c lib_vdprintf.c \
......
......@@ -56,4 +56,4 @@ int vdprintf(int fd, FAR const char *fmt, va_list ap)
lib_rawoutstream(&rawoutstream, fd);
return lib_vsprintf(&rawoutstream.public, fmt, ap);
}
}
......@@ -448,11 +448,22 @@ static int sem_restoreholderprio(FAR struct semholder_s *pholder, FAR sem_t *sem
if (htcb->npend_reprio < 1)
{
/* No... the holder thread has only been boosted once. Reset all
* priorities back to the base priority.
/* No... the holder thread has only been boosted once.
* npend_reprio should be 0 and the boosted priority should be the
* priority of the task that just got the semaphore
* (stcb->sched_priority)
*
* That latter assumption may not be true if the stcb's priority
* was also boosted so that it no longer matches the htcb's
* sched_priority. Or if CONFIG_SEM_NNESTPRIO is too small (so
* that we do not have a proper record of the reprioritizations).
*/
DEBUGASSERT(htcb->sched_priority == stcb->sched_priority && htcb->npend_reprio == 0);
DEBUGASSERT(/* htcb->sched_priority == stcb->sched_priority && */
htcb->npend_reprio == 0);
/* Reset the holder's priority back to the base priority. */
sched_reprioritize(htcb, htcb->base_priority);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment