Repository navigation
fix(launch_manager): remove allocation in ProcessGroupManager getters… - #699
Conversation
|
But the API signature invites the opposite: if a caller ever passes a real, abortable token (built from a Since nothing in this PR actually needs cancellable waits (both call sites use the non-abortable default), I'd suggest dropping the |
|
Hi @paulquiring
All unit tests, including AddressSanitizer and ThreadSanitizer checks, continue to pass cleanly with zero dynamic memory allocations and no race conditions. |
|
Apologies for the late response. Paul is currently unavailable to complete the review so I will take over the review. |
Thanks, but now github reports conflicts that prevent me from merging.
|
Signed-off-by: MohamedRady-99 <mohamed.hossam-rady@valeo.com>
conflicts solved |
|
@MohamedRady-99 sorry for the delay. There were central issues with the pipelines in score which prevented merging your PR. Could you kindly rebase one last time? Thank you. |
I’ve rebased the branch, and it’s now ready to be merged. |
c99b657 to
ac37c4a
Compare
|
Now formatting pre commit check fails, please run |
86f1727 to
9719e29
Compare
|
Documentation preview for this pull request is available at: |
Description
CompletionSlot<T>abstraction backed byscore::concurrency::Notificationandstd::optional<T>inline storage, replacing heap-allocatingInterruptiblePromise/InterruptibleFutureacrossgetActiveRunTarget()andsetRequestedRunTarget()GetActiveRunTargetandSetRequestedRunTarget) now carry a non-owning pointer to the caller's stack-allocated slot instead of moving a promise into the event queue, ensuring zero dynamic memory allocations during runtime state queries and transitions.ComponentEventQueue::push()now correctly returnsfalseon any enqueue failure (includingConcurrencyErrc::kStopped), and the getters/setters immediately returnscore::MakeUnexpected(ExecErrc::kFailed)rather than blocking indefinitely if the queue is stopped.completion_slot_UTverifying synchronous/asynchronous completion, stop-token aborts, and validating zero dynamic allocations via global allocation tracking for bothResult<IdentifierHash>andResult<void>. Also adds concurrent execution and stopped-queue coverage inprocess_group_manager_UTandcomponent_event_queue_UT.Related issue
fixes #641