Skip to main content

chronon::sender::detail::ProducerDestinationTransactionState

More...

#include <Connection.hpp>

Public Classes

Name
structConnectionEntry

Public Functions

Name
boolvalid(const ConnectionBase * connection, uint64_t cycle) const
booltryClaim(ConnectionBase * connection, uint64_t cycle)
voidrelease(const ConnectionBase * connection)
ProducerDestinationTransactionState(Unit * owner)

Public Attributes

Name
Unit *producer
std::vector< ConnectionEntry >connections

Detailed Description

struct chronon::sender::detail::ProducerDestinationTransactionState;

Transaction control plane shared by one producer Unit's connections to one destination InPort.

Each instance and its mutable connection snapshots are cache-line aligned. Only the source Unit's worker mutates them after topology construction, so independent producers never share a writable line; no lock or atomic is required. Ordinary send/canSend do not consult this state.

Public Functions Documentation

function valid

inline bool valid(
const ConnectionBase * connection,
uint64_t cycle
) const

function tryClaim

inline bool tryClaim(
ConnectionBase * connection,
uint64_t cycle
)

function release

inline void release(
const ConnectionBase * connection
)

function ProducerDestinationTransactionState

inline explicit ProducerDestinationTransactionState(
Unit * owner
)

Public Attributes Documentation

variable producer

Unit * producer = nullptr;

variable connections

std::vector< ConnectionEntry > connections;

Updated on 2026-07-18 at 18:58:48 +0000