Skip to content

Adding new mpmc queue#187

Merged
NicolasFussberger merged 15 commits into
eclipse-score:mainfrom
etas-contrib:new-queue
May 18, 2026
Merged

Adding new mpmc queue#187
NicolasFussberger merged 15 commits into
eclipse-score:mainfrom
etas-contrib:new-queue

Conversation

@MaciejKaszynski
Copy link
Copy Markdown
Contributor

  • Adding new queue

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 28, 2026

License Check Results

🚀 The license check job ran with the Bazel command:

bazel run --lockfile_mode=error //:license-check

Status: ⚠️ Needs Review

Click to expand output
[License Check Output]
Extracting Bazel installation...
Starting local Bazel server (8.4.2) and connecting to it...
INFO: Invocation ID: 6e4c2275-12b0-416a-b8ad-d5591aa2d636
Computing main repo mapping: 
Computing main repo mapping: 
Loading: 
Loading: 0 packages loaded
Loading: 0 packages loaded
Loading: 0 packages loaded
    currently loading: 
Loading: 0 packages loaded
    currently loading: 
Analyzing: target //:license-check (1 packages loaded)
Analyzing: target //:license-check (1 packages loaded, 0 targets configured)
Analyzing: target //:license-check (1 packages loaded, 0 targets configured)

Analyzing: target //:license-check (29 packages loaded, 10 targets configured)

Analyzing: target //:license-check (86 packages loaded, 10 targets configured)

Analyzing: target //:license-check (141 packages loaded, 2719 targets configured)

Analyzing: target //:license-check (149 packages loaded, 7114 targets configured)

Analyzing: target //:license-check (152 packages loaded, 8045 targets configured)

Analyzing: target //:license-check (157 packages loaded, 8094 targets configured)

Analyzing: target //:license-check (158 packages loaded, 8218 targets configured)

INFO: Analyzed target //:license-check (162 packages loaded, 10232 targets configured).
[12 / 16] JavaToolchainCompileClasses external/rules_java+/toolchains/platformclasspath_classes; 0s disk-cache
[14 / 16] [Prepa] JavaToolchainCompileBootClasspath external/rules_java+/toolchains/platformclasspath.jar
INFO: Found 1 target...
Target //:license.check.license_check up-to-date:
  bazel-bin/license.check.license_check
  bazel-bin/license.check.license_check.jar
INFO: Elapsed time: 20.021s, Critical Path: 2.54s
INFO: 16 processes: 12 internal, 3 processwrapper-sandbox, 1 worker.
INFO: Build completed successfully, 16 total actions
INFO: Running command line: bazel-bin/license.check.license_check ./formatted.txt <args omitted>
usage: org.eclipse.dash.licenses.cli.Main [-batch <int>] [-cd <url>]
       [-confidence <int>] [-ef <url>] [-excludeSources <sources>] [-help] [-lic
       <url>] [-project <shortname>] [-repo <url>] [-review] [-summary <file>]
       [-timeout <seconds>] [-token <token>]

@github-actions
Copy link
Copy Markdown

The created documentation from the pull request is available at: docu-html

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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, and ProcessInfoNode to enqueue/dequeue work via the new queue API (push/pop/stop).
  • Removes the old JobQueue implementation 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.

Comment thread src/launch_manager_daemon/src/process_group_manager/processinfonode.cpp Outdated
Comment thread src/launch_manager_daemon/src/concurrency/BUILD Outdated
Comment thread src/launch_manager_daemon/src/process_group_manager/workerthread.cpp Outdated
Comment thread src/launch_manager_daemon/src/concurrency/mpmc_concurrent_queue.hpp Outdated
Comment thread src/launch_manager_daemon/src/process_group_manager/graph.cpp Outdated
Comment thread src/launch_manager_daemon/src/process_group_manager/processinfonode.cpp Outdated
Comment thread src/launch_manager_daemon/src/process_group_manager/workerthread.cpp Outdated
Comment thread src/launch_manager_daemon/src/process_group_manager/graph.cpp Outdated
Comment thread src/launch_manager_daemon/src/process_group_manager/processinfonode.cpp Outdated
Comment thread src/launch_manager_daemon/src/process_group_manager/processinfonode.cpp Outdated
Comment thread src/launch_manager_daemon/common/concurrency/BUILD
Comment thread src/launch_manager_daemon/src/concurrency/mpmc_concurrent_queue.hpp Outdated
@NicolasFussberger NicolasFussberger merged commit 3cea0c4 into eclipse-score:main May 18, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants