[RTEMS Project] #4679: Use priority inheritance for thread join

RTEMS trac trac at rtems.org
Thu Jul 28 05:45:19 UTC 2022


#4679: Use priority inheritance for thread join
-----------------------------+------------------------------
 Reporter:  Sebastian Huber  |       Owner:  Sebastian Huber
     Type:  enhancement      |      Status:  closed
 Priority:  normal           |   Milestone:  6.1
Component:  score            |     Version:  6
 Severity:  normal           |  Resolution:  fixed
 Keywords:                   |  Blocked By:
 Blocking:                   |
-----------------------------+------------------------------
Changes (by Sebastian Huber <sebastian.huber@…>):

 * status:  assigned => closed
 * resolution:   => fixed


Comment:

 In [changeset:"31036f1dc8a963fb0bc3fc103f63028988314fea/rtems"
 31036f1d/rtems]:
 {{{
 #!CommitTicketReference repository="rtems"
 revision="31036f1dc8a963fb0bc3fc103f63028988314fea"
 score: Use priority inheritance for thread join

 Threads may join the thread termination of another thread using the
 pthread_join() or rtems_task_delete() directives.  The thread cancel
 operation
 used a special case priority boosting mechanism implemented by
 _Thread_Raise_real_priority().  The problem was that this approach

 * is not transitive,

 * does not account for priority adjustments of the calling task
   while waiting for the join,

 * does not support clustered scheduling, and

 * does not detect deadlocks.

 All these problems are fixed by using a priority inheritance thread queue
 for
 the join operation.

 Close #4679.
 }}}

--
Ticket URL: <http://devel.rtems.org/ticket/4679#comment:4>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list