Adding new mpmc queue#187
Merged
Merged
Conversation
Contributor
MaciejKaszynski
commented
Apr 28, 2026
- Adding new queue
License Check Results🚀 The license check job ran with the Bazel command: bazel run --lockfile_mode=error //:license-checkStatus: Click to expand output |
e1bcf7a to
50f3cec
Compare
|
The created documentation from the pull request is available at: docu-html |
There was a problem hiding this comment.
Pull request overview
This PR replaces the existing JobQueue with a new MPMCConcurrentQueue implementation and wires it into the Launch Manager daemon’s process-group worker execution flow.
Changes:
- Introduces
MPMCConcurrentQueue(MPMC ring buffer + semaphore blocking) plus Helgrind annotations and Bazel targets/tests. - Updates
WorkerThread,ProcessGroupManager,Graph, andProcessInfoNodeto enqueue/dequeue work via the new queue API (push/pop/stop). - Removes the old
JobQueueimplementation and adjusts Bazel coverage/test filtering and OSAL source selection.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
src/launch_manager_daemon/src/process_group_manager/workerthread.hpp |
Switches worker thread pool to use MPMCConcurrentQueue and adds stop() API. |
src/launch_manager_daemon/src/process_group_manager/workerthread.cpp |
Implements new pop-driven worker loop and queue stop behavior. |
src/launch_manager_daemon/src/process_group_manager/processinfonode.cpp |
Migrates successor job enqueueing to push(..., kMaxQueueDelay). |
src/launch_manager_daemon/src/process_group_manager/processgroupmanager.hpp |
Replaces JobQueue type with WorkerQueue alias over MPMCConcurrentQueue. |
src/launch_manager_daemon/src/process_group_manager/processgroupmanager.cpp |
Constructs the new queue and updates shutdown timeout behavior to stop workers. |
src/launch_manager_daemon/src/process_group_manager/jobqueue.hpp |
Removes old job queue header. |
src/launch_manager_daemon/src/process_group_manager/jobqueue.cpp |
Removes old job queue implementation. |
src/launch_manager_daemon/src/process_group_manager/graph.cpp |
Updates node queuing to push(..., kMaxQueueDelay) and logging. |
src/launch_manager_daemon/src/concurrency/mpmc_concurrent_queue.hpp |
Adds the new concurrent queue implementation. |
src/launch_manager_daemon/src/concurrency/helgrind_annotations.hpp |
Adds optional Helgrind annotation macros. |
src/launch_manager_daemon/src/concurrency/mpmc_concurrent_queue_test.cpp |
Adds unit tests for queue correctness and concurrency behaviors. |
src/launch_manager_daemon/src/concurrency/BUILD |
Adds Bazel targets for the queue library and tests (including helgrind/tsan variants). |
src/launch_manager_daemon/health_monitor_lib/src/score/lcm/saf/supervision/ProcessStateTracker.cpp |
Minor iterator declaration tweak. |
src/launch_manager_daemon/common/BUILD |
Refactors OSAL source globs to include posix + OS-specific sources. |
src/launch_manager_daemon/BUILD |
Adds dependency on the new concurrency queue library. |
.bazelrc |
Excludes no-coverage tagged tests from coverage runs. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
b8b0b3f to
15d9c52
Compare
NicolasFussberger
approved these changes
May 18, 2026
This file contains hidden or 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
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.