chronon::sender::detail::ProducerDestinationTransactionState
#include <Connection.hpp>
Public Classes
| Name | |
|---|---|
| struct | ConnectionEntry |
Public Functions
| Name | |
|---|---|
| bool | valid(const ConnectionBase * connection, uint64_t cycle) const |
| bool | tryClaim(ConnectionBase * connection, uint64_t cycle) |
| void | release(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