-
Notifications
You must be signed in to change notification settings - Fork 228
Closed
Description
The CFE_ES_ScanAppTable() is called from the ES message processing thread, but it does not lock the global ES data structure when reading/writing from the global data.
ES software bus command messages are safe because this function is called by the same thread that is processing those messages, therefore concurrency is not possible here.
But other functions, like CFE_ES_DeleteApp() and CFE_ES_ReloadApp() are part of the public API and these also update the same fields within the app state data structure that CFE_ES_ScanAppTable() is reading. CFE_ES_RunLoop() can also modify fields within this structure and this is called by pretty much every app in the system.
This issue was noted while reviewing the fix for a similar issue in #279.