pkarashchenko commented on issue #6310:
URL: 
https://github.com/apache/incubator-nuttx/issues/6310#issuecomment-1133958863

   @davids5 I've looked into the 10.1.0+ changes to cover described test case 
and made some drawings on the paper of other possible test cases. My conclusion 
is that your changes as well as some changes that I prototyped locally cover 
only particular corner cases and will only overcomplicate logic and will not 
cover all the cases.
   The case is that task `pend_reprios` does not cover the source of 
re-prioritisation (I mean if task holds 2 semaphores and first time it was 
reprioritised due to holding semaphore 1 and second time due to semaphore 2) so 
correct restoring to base priority is not possible.
   I see as a robust solution a way that we need to equip semaphore with a list 
of tasks waiting for that semaphore (in case of priority inheritance only of 
course) and when task release a semaphore it iterates the tasks wait list for 
all semaphores that it holds and find the highest priority from that lists. If 
that priority is higher than task base prio then priority should be dropped to 
the highest priority of the waiting task otherwise base priority should be set.
   I try to explore some design descriptions for current implementation to 
ensure that I understand all design points of the current implementation 
correctly.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to