fix(runtime): mux adapter forwards the dependency's real status code (05/STAB-19)
This commit is contained in:
@@ -66,10 +66,23 @@ public sealed class DependencyConsumerMuxAdapter : ReceiveActor
|
||||
_log.Debug("DependencyConsumerMuxAdapter: registered {Count} dependency ref(s)", refs.Count);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Forwards one dependency value to the consumer, <b>status code included</b> (archreview
|
||||
/// 05/STAB-19).
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This used to pass a hard-coded <c>0u</c> behind a comment saying quality was stripped at the
|
||||
/// mux boundary. That was true when the adapter was written and stopped being true at #478/#519 —
|
||||
/// <see cref="VirtualTagActor.DependencyValueChanged"/> has carried the source driver's full status
|
||||
/// code, sub-code and all, ever since. The stale comment outliving the fact is what kept a
|
||||
/// comms-lost input arriving at the Calculation driver as <i>arrived, Good, null</i>:
|
||||
/// indistinguishable from a genuine Good null, so the warm-up gate was satisfied by a value that
|
||||
/// never arrived and the calc output stayed Good over a dead source.
|
||||
/// </remarks>
|
||||
/// <param name="msg">The dependency value, as the mux delivered it.</param>
|
||||
private void OnDependencyValueChanged(VirtualTagActor.DependencyValueChanged msg)
|
||||
{
|
||||
// Quality is stripped at the mux boundary (value + timestamp only), so forward Good (0).
|
||||
_consumer.OnDependencyValue(msg.TagId, msg.Value, statusCode: 0u, msg.TimestampUtc);
|
||||
_consumer.OnDependencyValue(msg.TagId, msg.Value, msg.StatusCode, msg.TimestampUtc);
|
||||
}
|
||||
|
||||
/// <summary>The mux's batched delivery: one message carrying this adapter's whole matched slice of a
|
||||
|
||||
Reference in New Issue
Block a user