Skip to content
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
e2636bd
Added Os::CountingSemaphore osal module (#5173)
bevinduckett May 27, 2026
e7f0338
Added CountingSemaphore to SDD
bevinduckett May 27, 2026
5cdb769
Added new words for spell check of semaphore
bevinduckett May 27, 2026
8fd2214
Initial implementation of PriorityMemQueue using a lockless queue
bevinduckett May 27, 2026
8a4e9b5
Added flagged words to spelling & improved UTs
bevinduckett May 27, 2026
4c55a7e
Merge branch 'devel' into mem-priority-queue
bevinduckett May 27, 2026
b15daaa
Merge branch 'devel' into mem-priority-queue
thomas-bc Jun 4, 2026
0a3451d
Merge upstream devel into mem-priority-queue; resolve CountingSemapho…
thomas-bc Jun 5, 2026
07e4d39
Merge remote-tracking branch 'JPL-Devin/mem-priority-queue' into mem-…
thomas-bc Jun 5, 2026
5363467
Resolve/revert devel merge quirks
thomas-bc Jun 9, 2026
50486ca
Minimal review changes and formatting
thomas-bc Jun 9, 2026
73d5456
Fixed UT failure & PR comments for PriorityMemQueue
bevinduckett Jun 16, 2026
5603108
Merge branch 'devel' into mem-priority-queue
bevinduckett Jun 16, 2026
9ef497c
Cleaned up comments for PriorityMemQueue
bevinduckett Jun 16, 2026
25aa3c6
Updated PriorityMemQueue priority range & improved memory efficiency
bevinduckett Jun 16, 2026
cb51d28
Added explicit to PriorityMemQueue constructors
bevinduckett Jun 16, 2026
3b75253
Refactored AtomicQueue & PriorityMemQueue UTs to reduce LOC
bevinduckett Jun 16, 2026
20c3744
Fixed formatting & improved multi-threaded testing for PriorityMemQue…
bevinduckett Jun 17, 2026
39f5b75
Fixed CI failures for PR-5205
bevinduckett Jun 17, 2026
92f3862
Merge branch 'devel' into mem-priority-queue
bevinduckett Jun 17, 2026
f7bdbea
Fix UT warning and formatting
thomas-bc Jun 18, 2026
8e04e2f
Fix CHOOSES_IMPLEMENTATIONS
thomas-bc Jun 18, 2026
0758f28
remove unecessary CHOOSES_IMPLEMENTATION
thomas-bc Jun 18, 2026
2aba988
Use resetConfig in testing to prevent use-after-free
thomas-bc Jun 18, 2026
f02af8b
Merge branch 'devel' into mem-priority-queue
thomas-bc Jun 24, 2026
4ca1cda
fix use-after-free for coverage CI
thomas-bc Jun 27, 2026
4836bbf
Merge branch 'devel' into mem-priority-queue
bevinduckett Jul 7, 2026
f62ebe8
Update EnableDisableRaceCondition in PriorityMemQueue UT
bevinduckett Jul 7, 2026
ad729e1
Apply suggestions from code review
bevinduckett Jul 7, 2026
6b79666
Fixes for PR comments
bevinduckett Jul 7, 2026
36f55f4
fix formatting
thomas-bc Jul 7, 2026
da3aede
More PR fixes
bevinduckett Jul 7, 2026
019b450
Fix formatting
thomas-bc Jul 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions Os/Generic/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,44 @@
add_fprime_subdirectory("${CMAKE_CURRENT_LIST_DIR}/Types")
add_custom_target("${FPRIME_CURRENT_MODULE}")

#### PriorityMemQueue (AtomicQueue-based) ####
register_fprime_module(
Os_Generic_PriorityMemQueue_Implementation
SOURCES
"${CMAKE_CURRENT_LIST_DIR}/PriorityMemQueue.cpp"
HEADERS
"${CMAKE_CURRENT_LIST_DIR}/PriorityMemQueue.hpp"
DEPENDS
Fw_Types
Os_Generic_Types
Os_CountingSemaphore
)
register_fprime_implementation(
Comment thread
thomas-bc marked this conversation as resolved.
Os_Generic_PriorityMemQueue
SOURCES
"${CMAKE_CURRENT_LIST_DIR}/DefaultPriorityMemQueue.cpp"
IMPLEMENTS
Os_Queue
DEPENDS
Fw_Types
Os_Generic_PriorityMemQueue_Implementation
)

register_fprime_ut(
PriorityMemQueue_UnitTest
SOURCES
"${CMAKE_CURRENT_LIST_DIR}/test/ut/PriorityMemQueueTests.cpp"
"${CMAKE_CURRENT_LIST_DIR}/test/ut/PriorityMemQueueInputValidationTests.cpp"
DEPENDS
Fw_Types
Fw_Time
Os
STest
Os_Generic_PriorityMemQueue_Implementation
CHOOSES_IMPLEMENTATIONS
Os_Generic_PriorityMemQueue
)

#### Os/Generic/Queue Section ####
register_fprime_module(
Os_Generic_PriorityQueue_Implementation
Expand Down
20 changes: 20 additions & 0 deletions Os/Generic/DefaultPriorityMemQueue.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// ======================================================================
// \title Os/Generic/DefaultPriorityMemQueue.cpp
// \author B. Duckett
// \brief cpp file sets default Os::Queue to generic priority queue implementation via linker
//
// \copyright
// Copyright 2026, by the California Institute of Technology.
// ALL RIGHTS RESERVED. United States Government Sponsorship
// acknowledged.
// ======================================================================
#include "Os/Delegate.hpp"
#include "Os/Queue.hpp"
#include "PriorityMemQueue.hpp"

namespace Os {
QueueInterface* QueueInterface::getDelegate(QueueHandleStorage& aligned_new_memory) {
return Os::Delegate::makeDelegate<QueueInterface, Os::Generic::PriorityMemQueue, QueueHandleStorage>(
aligned_new_memory);
}
} // namespace Os
Loading
Loading