Execution Deadlines¶
Header: fiction/utils/execution_timeout.hpp
-
class timeout_error : public std::runtime_error¶
An algorithm reached its execution deadline without producing a complete result.
Public Functions
-
inline timeout_error()¶
Constructs an execution-timeout error.
-
inline timeout_error()¶
-
inline std::chrono::steady_clock::time_point fiction::utils::make_deadline(const uint64_t timeout, const std::chrono::steady_clock::time_point enclosing = std::chrono::steady_clock::time_point::max())¶
Starts a millisecond budget without extending an enclosing deadline.
- Parameters:
timeout – Milliseconds from now; the maximum value means unlimited.
enclosing – Deadline shared with an enclosing algorithm.
- Returns:
The earlier deadline, saturated at the clock’s maximum time point.
-
inline void fiction::utils::check_deadline(const std::chrono::steady_clock::time_point deadline)¶
Checks a shared monotonic deadline.
- Parameters:
deadline – Expiration time; the maximum time point means unlimited.
- Throws:
timeout_error – if the deadline has been reached.