From d8d2b8896905bf503e9a18039363bc2adf17406d Mon Sep 17 00:00:00 2001 From: Jacob Hageman Date: Thu, 3 Jun 2021 19:57:18 +0000 Subject: [PATCH] Fix #741, Document CFE_TBL_Unregister use-case --- modules/core_api/fsw/inc/cfe_tbl.h | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/modules/core_api/fsw/inc/cfe_tbl.h b/modules/core_api/fsw/inc/cfe_tbl.h index b9938b370..4033de433 100644 --- a/modules/core_api/fsw/inc/cfe_tbl.h +++ b/modules/core_api/fsw/inc/cfe_tbl.h @@ -227,14 +227,25 @@ CFE_Status_t CFE_TBL_Share(CFE_TBL_Handle_t *TblHandlePtr, const char *TblName); /*****************************************************************************/ /** -** \brief Unregister a previously registered table and free associated resources +** \brief Unregister a table ** ** \par Description -** When an application is being removed from the system, it should -** unregister those tables that it created. The application should -** call this function as a part of its cleanup process. The table -** will be removed from memory once all table addresses referencing -** it have been released. +** When an application is being removed from the system, ES will +** clean up/free all the application related resources including tables +** so apps are not required to call this function. +** +** A valid use-case for this API is to unregister a shared table if +** access is no longer needed or the owning application was removed from +** the system (CS app is an example). +** +** Typically apps should only register tables during initialization and +** registration/unregistration by the owning application during operation +** should be avoided. If unavoidable, special care needs to be taken +** (especially for shared tables) to avoid race conditions due to +** competing requests from mutiple tasks. +** +** Note the table will not be removed from memory until all table access +** links have been removed (registration and all shared access). ** ** \par Assumptions, External Events, and Notes: ** None