RTEMS | cpukit: fix off-chain state checks and pointer clearing (!1067)

Joel Sherrill (@joel) gitlab at rtems.org
Fri Feb 20 18:37:54 UTC 2026




Joel Sherrill commented on a discussion on cpukit/rtems/src/semcreate.c: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1067#note_143083

 >    }
 >  
 >    if ( status != STATUS_SUCCESSFUL ) {
 > +    _Chain_Set_off_chain( &the_semaphore->Object.Node );

When the semaphore is allocated, the underlying object allocate method should be calling a chain method to remove the node from the object class' inactive chain. Drilling down, that ends up calling a Chain Get method. See _Objects_Allocate_with_extend() and _Objects_Allocate_static().

Again, I think this is the wrong place to do this. It is the Chain functions that remove a node that should always set off node.

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1067#note_143083
You're receiving this email because of your account on gitlab.rtems.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20260220/610a87db/attachment-0001.htm>


More information about the bugs mailing list