Joel Sherrill commented on a discussion on cpukit/rtems/src/timerserver.c: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1067#note_143085 > cpu = _Watchdog_Get_CPU( &the_timer->Ticker ); > the_timer->stop_time = _Timer_Get_CPU_ticks( cpu ); > wakeup = _Chain_Is_empty( &ts->Pending ); > + _Chain_Set_off_chain( &the_timer->Ticker.Node.Chain ); > _Chain_Append_unprotected( &ts->Pending, &the_timer->Ticker.Node.Chain ); The node is pulled off the chain at line 127 and it should have been marked off chain there. But _Chain_Get_first_unprotected() only marks it off chain if debug is enabled. Is that the root cause? The marking of a node as being off a chain should be done in all methods that take a node off a chain. I think _Chain_Initialize_node(), Chain Get, and Extract methods should all call off chain. Similarly all the insert, prepend, and append methods can have an _Assert() that the node is off the chain. -- View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/1067#note_143085 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
