chronon::sender
Namespaces
| Name |
|---|
| chronon::sender::queue_detail |
| chronon::sender::factory |
| chronon::sender::detail |
| chronon::sender::config |
Classes
Types
| Name | |
|---|---|
| enum class | UnitState { Initialized, Created} |
| enum class uint8_t | TerminationReason { UserInterrupted = 4, None = 0, MaxCyclesReached = 5, ExitSyscall = 2, Error = 3, Completed = 1, CheckpointRequested = 6} Why the simulation is being terminated. |
| template <typename T > using StageReg< T, 1 > | SingleStageReg |
| enum class uint8_t | PortPolicy { StageSelective = 1, LegacyFastPath = 0} |
| enum class uint8_t | LoseReason { OVERFLOW_FAILED, LOWER_PRIORITY, BANK_CONFLICT} |
| enum class uint8_t | BankConflictPriority { LowerPipeIndex, HigherPipeIndex} |
Functions
| Name | |
|---|---|
| template <ValidPhase P> std::size_t | write_slot_index() |
| void | wakeUnitAt(Unit * unit, uint64_t cycle) |
| bool | unitAcceptsPortWakeups(const Unit * unit) |
| TopoSortResult | topologicalSort(const DirectedGraph & graph) Topological sort via Kahn's algorithm. Time O(V + E), space O(V). |
| SCCResult | tarjanSCC(const DirectedGraph & graph) Strongly connected components via Tarjan. Time O(V + E), space O(V). |
| bool | stageTracePortMatches_(const std::string & name) |
| bool | stageTraceEnabled_() |
| template <ValidPhase P,std::size_t N,typename Src ,typename Dst > void | simpleForwardAll(Src & src, Dst & dst) Forward all pipes from src to dst with stall-aware retention. |
| template <ValidPhase P,typename Src ,typename Dst > bool | simpleForward(Src & src, Dst & dst, std::size_t pipe) |
| template <ValidPhase P,typename Src ,typename Dst > bool | simpleForward(Src & src, Dst & dst) Single-entry overload (for StageReg<T, 1>). |
| template <typename... Ts> PortTransaction< OutPort< Ts >... > | reserve(OutPort< Ts > &... ports) |
| void | recordPortOnOwnerUnit(Unit * unit, PortBase * port) Records a PortBase* on its owning Unit for wakeup/readiness bookkeeping. |
| void | recordCyclePreparedPortOnOwnerUnit(Unit * unit, PortBase * port) Registers a receiver-cycle hook without exposing Unit's definition to [Port.hpp]. |
| template <ValidPhase P> std::size_t | read_slot_index() |
| template <ValidPhase P,typename Src ,typename Dst ,typename Fn > bool | processForward(Src & src, Dst & dst, std::size_t pipe, Fn && fn) |
| template <ValidPhase P,typename Src ,typename Dst ,typename Fn > bool | processForward(Src & src, Dst & dst, Fn && fn) Forward with processing (single-entry): fn(data&) called before write. |
| std::vector< SimpleCycle > | johnsonAllCycles(const DirectedGraph & graph, size_t max_cycles =0) All simple cycles via Johnson. max_cycles caps results (0 = unlimited). |
| std::vector< std::vector< uint32_t > > | floydWarshall(const DirectedGraph & graph) All-pairs shortest paths via Floyd-Warshall. Time O(V^3), space O(V^2). |
| TightCouplingResult | findTightCouplingClusters(const DirectedGraph & graph) Union-Find clustering over zero-weight edges. Time O(E·α(V)), space O(V). |
| std::vector< std::vector< size_t > > | findIndependentSubgraphs(const DirectedGraph & graph) Group nodes by undirected connectivity into independent subgraphs. |
| template <ValidPhase P,typename Src ,typename Dst ,typename Convert > bool | convertForward(Src & src, Dst & dst, std::size_t pipe, Convert && convert) |
| template <ValidPhase P,typename Src ,typename Dst ,typename Convert > bool | convertForward(Src & src, Dst & dst, Convert && convert) Cross-type forward (single-entry): convert(src_data) returns dst_data. |
| void | addPortRegistrationToUnit(Unit * unit, std::function< void(const std::string &)> registration) |
| uint64_t | activitySchedulingGeneration(const Unit * unit) |
| template <typename... Ts> | ReliablePortSender(OutPort< Ts > & ...) |
Types Documentation
enum UnitState
| Enumerator | Value | Description |
|---|---|---|
| Initialized | ||
| Created |
enum TerminationReason
| Enumerator | Value | Description |
|---|---|---|
| UserInterrupted | 4 | External stop (e.g., Ctrl+C, API call) |
| None | 0 | |
| MaxCyclesReached | 5 | Hit cycle limit. |
| ExitSyscall | 2 | Exit syscall encountered. |
| Error | 3 | Error condition detected. |
| Completed | 1 | Normal completion (e.g., retired N instructions) |
| CheckpointRequested | 6 | Checkpoint reached (for save/restore) |
Why the simulation is being terminated.
using SingleStageReg
template <typename T >
using chronon::sender::SingleStageReg = StageReg<T, 1>;
enum PortPolicy
| Enumerator | Value | Description |
|---|---|---|
| StageSelective | 1 | |
| LegacyFastPath | 0 |
PortPolicy - Source-compatible InPort policy tag.
Both values use the same receiver-owned selective-flush engine. The tag is retained so existing model declarations remain source compatible while the public FlushRange contract is independent of queue policy and topology.
enum LoseReason
| Enumerator | Value | Description |
|---|---|---|
| OVERFLOW_FAILED | ||
| LOWER_PRIORITY | ||
| BANK_CONFLICT |
enum BankConflictPriority
| Enumerator | Value | Description |
|---|---|---|
| LowerPipeIndex | ||
| HigherPipeIndex |
Functions Documentation
function write_slot_index
template <ValidPhase P>
std::size_t write_slot_index()
function wakeUnitAt
inline void wakeUnitAt(
Unit * unit,
uint64_t cycle
)
function unitAcceptsPortWakeups
inline bool unitAcceptsPortWakeups(
const Unit * unit
)
function topologicalSort
inline TopoSortResult topologicalSort(
const DirectedGraph & graph
)
Topological sort via Kahn's algorithm. Time O(V + E), space O(V).
function tarjanSCC
inline SCCResult tarjanSCC(
const DirectedGraph & graph
)
Strongly connected components via Tarjan. Time O(V + E), space O(V).
function stageTracePortMatches_
inline bool stageTracePortMatches_(
const std::string & name
)
function stageTraceEnabled_
inline bool stageTraceEnabled_()
Selective-flush tracing (CHRONON_STAGE_TRACE env, retained for compatibility).
Permanent diagnostic feature. Emits one line per install/retire/ receiver-side predicate checks for investigating flush behavior in production builds.
Enable: CHRONON_STAGE_TRACE=1 (or any non-empty value) Optional filter: CHRONON_STAGE_TRACE_PORT=
function simpleForwardAll
template <ValidPhase P,
std::size_t N,
typename Src ,
typename Dst >
void simpleForwardAll(
Src & src,
Dst & dst
)
Forward all pipes from src to dst with stall-aware retention.
function simpleForward
template <ValidPhase P,
typename Src ,
typename Dst >
bool simpleForward(
Src & src,
Dst & dst,
std::size_t pipe
)
Simple stall-aware forward for a single pipe. If dst already has a write pending for this pipe, retains in src. Returns true if forwarded, false if retained (stalled).
function simpleForward
template <ValidPhase P,
typename Src ,
typename Dst >
bool simpleForward(
Src & src,
Dst & dst
)
Single-entry overload (for StageReg<T, 1>).
function reserve
template <typename... Ts>
PortTransaction< OutPort< Ts >... > reserve(
OutPort< Ts > &... ports
)
Acquire an all-or-none, cycle-local reservation over the supplied ports.
function recordPortOnOwnerUnit
inline void recordPortOnOwnerUnit(
Unit * unit,
PortBase * port
)
Records a PortBase* on its owning Unit for wakeup/readiness bookkeeping.
function recordCyclePreparedPortOnOwnerUnit
inline void recordCyclePreparedPortOnOwnerUnit(
Unit * unit,
PortBase * port
)
Registers a receiver-cycle hook without exposing Unit's definition to [Port.hpp].
function read_slot_index
template <ValidPhase P>
std::size_t read_slot_index()
function processForward
template <ValidPhase P,
typename Src ,
typename Dst ,
typename Fn >
bool processForward(
Src & src,
Dst & dst,
std::size_t pipe,
Fn && fn
)
Forward with processing: fn(pipe, data&) called on consumed data before writing to dst. Returns true if forwarded, false if stalled.
function processForward
template <ValidPhase P,
typename Src ,
typename Dst ,
typename Fn >
bool processForward(
Src & src,
Dst & dst,
Fn && fn
)
Forward with processing (single-entry): fn(data&) called before write.
function johnsonAllCycles
inline std::vector< SimpleCycle > johnsonAllCycles(
const DirectedGraph & graph,
size_t max_cycles =0
)
All simple cycles via Johnson. max_cycles caps results (0 = unlimited).
function floydWarshall
inline std::vector< std::vector< uint32_t > > floydWarshall(
const DirectedGraph & graph
)
All-pairs shortest paths via Floyd-Warshall. Time O(V^3), space O(V^2).
function findTightCouplingClusters
inline TightCouplingResult findTightCouplingClusters(
const DirectedGraph & graph
)
Union-Find clustering over zero-weight edges. Time O(E·α(V)), space O(V).
function findIndependentSubgraphs
inline std::vector< std::vector< size_t > > findIndependentSubgraphs(
const DirectedGraph & graph
)
Group nodes by undirected connectivity into independent subgraphs.
function convertForward
template <ValidPhase P,
typename Src ,
typename Dst ,
typename Convert >
bool convertForward(
Src & src,
Dst & dst,
std::size_t pipe,
Convert && convert
)
Cross-type forward: convert(pipe, src_data) returns dst_data. Returns true if forwarded, false if stalled.
function convertForward
template <ValidPhase P,
typename Src ,
typename Dst ,
typename Convert >
bool convertForward(
Src & src,
Dst & dst,
Convert && convert
)
Cross-type forward (single-entry): convert(src_data) returns dst_data.
function addPortRegistrationToUnit
inline void addPortRegistrationToUnit(
Unit * unit,
std::function< void(const std::string &)> registration
)
Defined here (free function) to avoid the [Port.hpp] → [Unit.hpp] circular dependency: Port constructors only see a forward-declared Unit.
Defined in [Unit.hpp]; declared here so port constructors can register auto-registration callbacks without including [Unit.hpp].
function activitySchedulingGeneration
inline uint64_t activitySchedulingGeneration(
const Unit * unit
)
function ReliablePortSender
template <typename... Ts>
ReliablePortSender(
OutPort< Ts > & ...
)
Updated on 2026-07-23 at 16:24:33 +0000