Sebastian Huber created an issue:
https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5067
Assignee: Sebastian Huber
## Summary
The system termination procedure is implemented like this:
```c
void _Terminate(
Internal_errors_Source the_source,
Internal_errors_t the_error
)
{
_User_extensions_Fatal( the_source, the_error );
_System_state_Set( SYSTEM_STATE_TERMINATED );
_SMP_Request_shutdown();
_CPU_Fatal_halt( the_source, the_error );
}
```
However, the `_User_extensions_Fatal()` should not return for properly
configured applications. The `_Terminate()` implementation should be simplified
to ease testing and code coverage.
```c
void _Terminate(
Internal_errors_Source the_source,
Internal_errors_t the_error
)
{
_User_extensions_Fatal( the_source, the_error );
/*
* Everything after invoking the fatal extensions is essentially dead code.
* At least one fatal extension of the initial extension sets should not
* return and for example reset the system. See section "System Termination
* Procedure" in the RTEMS Classic API Guide.
*
* The following code is only executed in badly applications.
*/
_CPU_Thread_Idle_body( 0 );
}
```
--
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/issues/5067
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