Fix an assertion
This commit is contained in:
parent
44450511d4
commit
961837eaaf
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue