-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integration Candidate 2020-10-27 #975
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Removed all index/pointer accesses of message map and routing table - All references now via IDs and APIs - Note SB still owns destination logic (unchanged linear linked list) - Limited whitespace fixes for readability - Resolved observed instances of variables not declared at the start of functions - Cleaned comments - Resolved potential double locks in CFE_SB_SendPrevSubs - Route and message write to file no longer guaranteed in msgid order to maintain performance for large msgid space implementations - Removed unused CFE_SB_FindGlobalMsgIdCnt - Clarified CFE_PLATFORM_SB_MAX_MSG_IDS config param description - Eliminated potential race in CFE_SB_PipeDeleteFull - Individual destination removal debug events no longer reported during a CFE_SB_PipeDeleteFull
- Implementation for direct map and unsorted routing table - Includes full coverage tests - Removed msg key and route stack concepts from direct map
- Message map size based on used routes - Oversized (4x) to limit collisions while retaining resonable size related to routing table (still smaller) - ~10% single collisions seen for full routing table with realistic message ID use - Oversizing means map can never fill, simplifies logic - Observed approximately 10%-20% performance hit, trade against memory use (can now use full 32 bit MsgId space) - Hash intended for 32 bit, if CFE_SB_MsgId_Atom_t size changes may require modification to hash - Also added full coverage unit tests
- Linking SBR with SB unit test, not stubbed - Confirms matching functionality (with updates for intended changes)
Because the process of handling a control request involves calling other subsystems, the ES lock needs to be released. However, this also means that the app record can change state for other reasons, such as the app self-exiting at the same time. To avoid this possibility, process in two phases: First assemble a list of tasks that have timed out and need to be cleaned up, while ES is locked. Next actually perform the cleanup, while ES is unlocked. In areas during cleanup that need to update the ES global, the lock is locally re-acquired and released.
Reorganize the global data structures for apps and libraries into components that can be shared between the two concepts. Break up the monolithic AppCreate and LoadLibrary functions and have these call subroutines that operate on the common components.
Allows the existing "CFE_ES_AppInfo_t" structure to be extended to libraries as well as applications by introducing a new value (3) for the Type field. Allows Libraries to be queried via API calls similar to App API. Also extends the Query All/Query One commands to operate on Libraries or Applications.
Fix #28, provide library API
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Describe the contribution
Fix #28
Fix #173
Fix #928
Fix #929
Fix #950
Testing performed
See Bundle CI: https://github.com/nasa/cFS/pull/153/checks
Expected behavior changes
PR Fix #28, provide library API #960
PR Fix #928 and #929 - Modularize software bus routing, add msg map hash #947
System(s) tested on
Additional context
Part of nasa/cFS#153
Third party code
None
Contributor Info - All information REQUIRED for consideration of pull request
@skliper
@jphickey