|
Zth (libzth)
|
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
...
zth::Locked RAII for scoped locks of zth::Mutex.std::chrono conversions for zth::Timestamp and zth::TimeInterval.std::promise and std::future specializations to wrap zth::Future.std::async specialization for fibers.zth::coro::task<T> and zth::coro::generator<T>.zth::join and zth::joiner for easy fiber/future joins.std::terminate() instead of std::abort() on errors, to allow setting a handler.assert() failure handling to zth::assert_handler().Config::MinTimeslice and Config::TimesliceOverrunReportThreshold return struct timespec for performance reasons.async keyword in favor of zth_async, as it conflicts with C++11 <future>.zth_async in favor of zth::fiber and zth::async.zth::fiber() to zth::factory() and implement zth::fiber() to actually return a fiber.zth::fiber() as alternative to zth_fiber() and friends with async.async can be prevented by defining ZTH_NO_ASYNC_KEYWORD before including <zth>. zth_async is always defined, with the original behavior of async.zth::fsm::Fsm into a BasicFsm and Fsm, of which the former does not need fiber and timestamps to run. As a result, the BasicFsm can be executed in an interrupt routine.Initial version.
setjmp()/longjmp(), sigaltstack(), ucontext(), WinFiber context switching approaches.