chronon::sender::IMultiProducerPort
#include <Port.hpp>
Inherited by chronon::sender::InPort< T >
Public Functions
| Name | |
|---|---|
| virtual | ~IMultiProducerPort() =default |
| virtual uint64_t | transportOverflowEvents() const |
| uint64_t | stagingOverflowEvents() const Backward-compatible name retained for diagnostics clients. |
| virtual void | setProducerProgress(const std::unordered_map< Unit *, const std::atomic< uint64_t > * > & ) |
| void | setArbitrationConnProgress(const std::unordered_map< Unit *, const std::atomic< uint64_t > * > & src_progress) |
| virtual bool | producerProgressFullyResolved() const |
| bool | mpscConnProgressFullyResolved() const |
Detailed Description
class chronon::sender::IMultiProducerPort;
IMultiProducerPort - type-erased MPSC metadata interface.
Payload arbitration disappeared with direct per-Connection SPSC lanes: the receiver merges lane heads when it reads the InPort. The scheduler retains this narrow interface only to prove producer-progress coverage and surface a physical-ring overflow as a correctness failure.
Public Functions Documentation
function ~IMultiProducerPort
virtual ~IMultiProducerPort() =default
function transportOverflowEvents
inline virtual uint64_t transportOverflowEvents() const
Reimplemented by: chronon::InPort::transportOverflowEvents, chronon::sender::InPort::transportOverflowEvents
Number of direct-lane pushes rejected by the physical ring. Nonzero means scheduler run-ahead exceeded provisioned transport storage.
function stagingOverflowEvents
inline uint64_t stagingOverflowEvents() const
Backward-compatible name retained for diagnostics clients.
function setProducerProgress
inline virtual void setProducerProgress(
const std::unordered_map< Unit *, const std::atomic< uint64_t > * > &
)
Reimplemented by: chronon::InPort::setProducerProgress, chronon::sender::InPort::setProducerProgress
Install PER-CONNECTION producer completed_cycle atomics for src_progress maps each producer Unit* to its cluster's completed-cycle publication. The InPort resolves one atomic per direct lane. The epoch-free scheduler requires complete coverage before allowing clusters to run independently.
function setArbitrationConnProgress
inline void setArbitrationConnProgress(
const std::unordered_map< Unit *, const std::atomic< uint64_t > * > & src_progress
)
function producerProgressFullyResolved
inline virtual bool producerProgressFullyResolved() const
Reimplemented by: chronon::InPort::producerProgressFullyResolved, chronon::sender::InPort::producerProgressFullyResolved
True iff every MPSC lane has a resolved producer-progress atomic. An unresolved lane vetoes epoch-free execution. Conservative default: false.
function mpscConnProgressFullyResolved
inline bool mpscConnProgressFullyResolved() const
Updated on 2026-07-17 at 17:43:31 +0000