chronon::sender::TerminationController
#include <TerminationRequest.hpp>
Public Functions
| Name | |
|---|---|
| ~TerminationController() =default | |
| void | setStopSource(stdexec::inplace_stop_source * src) |
| void | reset() Not thread-safe — call only when simulation is stopped. |
| bool | requestTermination(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 |
| bool | isTerminationRequested() const |
| const TerminationRequest & | getRequest() const Only valid after isTerminationRequested() returns true. |
| TerminationController() =default | |
| TerminationController(const TerminationController & ) =delete | |
| TerminationController(TerminationController && ) =delete |
Detailed Description
class chronon::sender::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