[RTEMS Project] #3334: deadlock in _once()

RTEMS trac trac at rtems.org
Tue Mar 13 14:12:26 UTC 2018

#3334: deadlock in _once()
 Reporter:  Stavros Passas  |       Owner:  (none)
     Type:  defect          |      Status:  new
 Priority:  normal          |   Milestone:  5.1
Component:  posix           |     Version:  4.11
 Severity:  normal          |  Resolution:
 Keywords:                  |  Blocked By:
 Blocking:                  |
Changes (by Sebastian Huber):

 * milestone:  4.11.4 => 5.1


 Please send patches to the mailing list.

 The yield loop may fail if thread priorities come into play. It should be
 replaced with a condition variable. So, for the once implementation we
 need a mutex and a condition variable (#include <rtems/thread.h>). There
 is currently no condition variable with API mutex support. We need
 protection from asynchronous deletion. Maybe use
 _Thread_Set_life_protection() directly in _Once().

 If we want to back port this fix to RTEMS 4.11, then we have to use
 <sys/lock.h> instead of <rtems/thread.h>.

Ticket URL: <http://devel.rtems.org/ticket/3334#comment:3>
RTEMS Project <http://www.rtems.org/>
RTEMS Project

More information about the bugs mailing list