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.


_______________________________________________
bugs mailing list
[email protected]
http://lists.rtems.org/mailman/listinfo/bugs

Reply via email to