Skip to main content

chronon::TerminationController

More...

#include <TerminationRequest.hpp>

Public Functions

Name
~TerminationController() =default
voidsetStopSource(stdexec::inplace_stop_source * src)
voidreset()
Not thread-safe — call only when simulation is stopped.
boolrequestTermination(TerminationReason reason, int32_t exit_code =0, uint64_t cycle =0, std::string_view unit_name ="", std::string_view message ="")
TerminationController &operator=(const TerminationController & ) =delete
TerminationController &operator=(TerminationController && ) =delete
boolisTerminationRequested() const
const TerminationRequest &getRequest() const
Only valid after isTerminationRequested() returns true.
TerminationController() =default
TerminationController(const TerminationController & ) =delete
TerminationController(TerminationController && ) =delete

Detailed Description

class chronon::TerminationController;

Thread-safe controller for simulation termination.

Hot-path check is a single relaxed atomic load (~1-2ns), called once per epoch (~64 cycles). Request submission is mutex-protected and first-wins; the cost (~80ns) is paid at most once per run.

Public Functions Documentation

function ~TerminationController

~TerminationController() =default

function setStopSource

inline void setStopSource(
stdexec::inplace_stop_source * src
)

Wire to an external stop_source for unified stop propagation. When set, requestTermination() also calls stop_source->request_stop().

function reset

inline void reset()

Not thread-safe — call only when simulation is stopped.

function requestTermination

inline bool requestTermination(
TerminationReason reason,
int32_t exit_code =0,
uint64_t cycle =0,
std::string_view unit_name ="",
std::string_view message =""
)

Return: true if this was the first request, false if already terminated.

Request simulation termination. Thread-safe; first request wins.

function operator=

TerminationController & operator=(
const TerminationController &
) =delete

function operator=

TerminationController & operator=(
TerminationController &&
) =delete

function isTerminationRequested

inline bool isTerminationRequested() const

function getRequest

inline const TerminationRequest & getRequest() const

Only valid after isTerminationRequested() returns true.

function TerminationController

TerminationController() =default

function TerminationController

TerminationController(
const TerminationController &
) =delete

function TerminationController

TerminationController(
TerminationController &&
) =delete

Updated on 2026-05-26 at 05:42:32 +0000