fix(managed): keep empty dynamic groups idle
Track desired membership separately from active target state and make natural completion an explicit group policy. Empty authoritative updates now remove all targets without terminating the scheduler, while static CLI groups retain all-target completion. Document that construction still requires an address-family-defining target and add regressions for empty replacement, later re-addition, idle control responsiveness, idle cancellation, and finite static completion.
This commit is contained in:
5 files changed
+215
-36
No files matched your search
@@ -10,8 +10,8 @@ use std::{
|
||||
|
||||
use irtt_client::{
|
||||
ClientEvent, EventSubscriptionError, ManagedClientGroup, ManagedClientGroupConfig,
|
||||
ManagedGroupEndReason, ManagedGroupEvent, ManagedTargetOutcome, SubscriberConfig,
|
||||
SubscriberOverflow, TargetEvent,
|
||||
ManagedGroupCompletionPolicy, ManagedGroupEndReason, ManagedGroupEvent, ManagedTargetOutcome,
|
||||
SubscriberConfig, SubscriberOverflow, TargetEvent,
|
||||
};
|
||||
#[cfg(all(test, feature = "stats"))]
|
||||
use irtt_client::{ClientTimestamp, PacketMeta, RttSample, SignedDuration};
|
||||
@@ -279,6 +279,7 @@ fn run_group_stream(
|
||||
let group_config = ManagedClientGroupConfig {
|
||||
client: config,
|
||||
pacing: args.pacing.into(),
|
||||
completion: ManagedGroupCompletionPolicy::AllTargetsComplete,
|
||||
};
|
||||
|
||||
let (session, events) = ManagedClientGroup::start_with_subscription(
|
||||
|
||||
Reference in new issue
Block a user