|
Zth (libzth)
|
Actual fiber implementation for arbitrary function types and arguments. More...
#include <async.h>
Public Types | |
| using | base = TypedFiber< R > |
| using | Function = F |
Public Types inherited from zth::TypedFiber< R > | |
| typedef R | Return |
| typedef Future< Return > | Future_type |
Public Types inherited from zth::Fiber | |
| enum | State { Uninitialized = 0 , New , Ready , Running , Waiting , Suspended , Dead } |
| typedef void() | FiberHook(Fiber &) |
| typedef ContextAttr::EntryArg | EntryArg |
| typedef void(* | Entry) (EntryArg) |
| typedef Hook< Fiber & > | Hook_type |
Public Types inherited from zth::Listable | |
| typedef void * | user_type |
Public Types inherited from zth::UniqueID< Fiber > | |
| typedef NamedUniqueID | base |
Public Member Functions | |
| template<typename F_ , typename... Args_> | |
| TypedFiberN (F_ &&func, Args_ &&... args) | |
| virtual | ~TypedFiberN () final=default |
Public Member Functions inherited from zth::TypedFiber< R > | |
| constexpr | TypedFiber () |
| virtual | ~TypedFiber () noexcept override=default |
| void | registerFuture (Future_type *future) |
| Future_type * | future () const |
| SharedPointer< Future_type > const & | withFuture () |
| operator SharedPointer< Future_type > const & () | |
| operator SharedReference< Future_type > () | |
Public Member Functions inherited from zth::Fiber | |
| Fiber (Entry entry, EntryArg arg=EntryArg()) | |
| virtual | ~Fiber () noexcept override |
| int | setStackSize (size_t size) noexcept |
| size_t | stackSize () const noexcept |
| size_t | stackUsage () const |
| Context * | context () const noexcept |
| State | state () const noexcept |
| void * | fls () const noexcept |
| void | setFls (void *data=nullptr) noexcept |
| Timestamp const & | runningSince () const noexcept |
| Timestamp const & | stateEnd () const noexcept |
| TimeInterval const & | totalTime () const noexcept |
| void | atExit (Hook_type::function_type f, Hook_type::arg_type arg=Hook_type::arg_type()) |
| void | atCleanup (Hook_type::function_type f, Hook_type::arg_type arg=Hook_type::arg_type()) |
| int | init (Timestamp const &now=Timestamp::now()) |
| int | run (Fiber &from, Timestamp now=Timestamp::now()) |
| bool | allowYield (Timestamp const &now=Timestamp::now()) const noexcept |
| void | kill () noexcept |
| void | nap (Timestamp const &sleepUntil=Timestamp::null()) noexcept |
| void | wakeup () noexcept |
| void | suspend () noexcept |
| void | resume () noexcept |
| string | str () const |
Public Member Functions inherited from zth::Listable | |
| constexpr | Listable () noexcept |
| constexpr | Listable (Listable const &e) noexcept |
| Listable & | operator= (Listable const &rhs) noexcept |
| Listable (Listable &&l) noexcept | |
| Listable & | operator= (Listable &&l) noexcept |
Public Member Functions inherited from zth::UniqueID< Fiber > | |
| UniqueID (UniqueID const &)=delete | |
| UniqueID (UniqueID &&u) noexcept | |
| UniqueID (string const &name) | |
| UniqueID (string &&name) | |
| UniqueID (char const *name=nullptr) | |
| UniqueID & | operator= (UniqueID const &)=delete |
| UniqueID & | operator= (UniqueID &&u) noexcept |
| virtual | ~UniqueID () noexcept override=default |
| void const * | normptr () const noexcept |
| uint64_t | id () const noexcept |
Public Member Functions inherited from zth::NamedUniqueID< Named > | |
| virtual | ~NamedUniqueID () noexcept override=default |
| string const & | name () const noexcept |
| void | setName (string const &name) |
| void | setName (char const *name) |
| void | setName (string &&name) |
| virtual char const * | id_str () const noexcept override |
Public Member Functions inherited from zth::RefCounted | |
| RefCounted () noexcept | |
| virtual | ~RefCounted () noexcept |
| void | used () noexcept |
| bool | unused () noexcept |
| size_t | refs () const noexcept |
Protected Member Functions | |
| virtual void | entry_ () final |
Protected Member Functions inherited from zth::TypedFiber< R > | |
| template<typename T > | |
| void | setFuture (T const &r) |
| void | setFuture () |
Protected Member Functions inherited from zth::Fiber | |
| void | setState (State state, Timestamp const &t=Timestamp::now()) noexcept |
| void | fiberEntry_ () noexcept |
Protected Member Functions inherited from zth::UniqueID< Fiber > | |
| virtual uint64_t | id_ () const noexcept final |
Protected Member Functions inherited from zth::NamedUniqueID< Named > | |
| NamedUniqueID (char const *name=nullptr) | |
| NamedUniqueID (string const &name) | |
| NamedUniqueID (string &&name) | |
Protected Member Functions inherited from zth::UniqueIDBase | |
| virtual | ~UniqueIDBase () noexcept=default |
Protected Member Functions inherited from zth::RefCounted | |
| virtual void | cleanup () noexcept |
Additional Inherited Members | |
Static Public Member Functions inherited from zth::UniqueID< Fiber > | |
| static uint64_t | getID () noexcept |
Static Public Attributes inherited from zth::Fiber | |
| static FiberHook * | hookNew = nullptr |
| Hook to be called when a Fiber is created. | |
| static FiberHook * | hookDead = nullptr |
| Hook to be called when a Fiber is destroyed. | |
| static uintptr_t const | ExitUnknown = (uintptr_t)-1 |
Static Protected Member Functions inherited from zth::TypedFiber< R > | |
| static void | entry (void *that) |
Static Protected Member Functions inherited from zth::Fiber | |
| static void | fiberEntry (void *that) noexcept |
Actual fiber implementation for arbitrary function types and arguments.
| F | function type (function pointer, lambda, etc.) |
| R | return type of F |
| Args | argument types of F as std::tuple<...> |
| using zth::TypedFiberN< F, R, Args >::base = TypedFiber<R> |
| using zth::TypedFiberN< F, R, Args >::Function = F |
|
inline |
|
finalvirtualdefault |
|
inlinefinalprotectedvirtual |
Implements zth::TypedFiber< R >.