|
Zth (libzth)
|
The fiber. More...
#include <fiber.h>
Public Types | |
| enum | State { Uninitialized = 0 , New , Ready , Running , Waiting , Suspended , Dead } |
| typedef void() | FiberHook(Fiber &) |
| typedef ContextAttr::EntryArg | EntryArg |
| typedef void(* | Entry) (EntryArg) |
Public Types inherited from zth::Listable< Fiber > | |
| typedef Fiber | type |
Public Member Functions | |
| Fiber (Entry entry, EntryArg arg=EntryArg()) | |
| virtual | ~Fiber () 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 | addCleanup (void(*f)(Fiber &, void *), void *arg) |
| 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< Fiber > | |
| constexpr | Listable () noexcept |
| constexpr | Listable (Listable const &e) noexcept |
| Listable (Listable &&l) noexcept | |
| Listable & | operator= (Listable const &rhs) noexcept |
| Listable & | operator= (Listable &&l) noexcept |
| type * | listNext () const noexcept |
| type * | listPrev () const 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 ()=default |
| void const * | normptr () const noexcept |
| uint64_t | id () const noexcept |
| 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 override |
Static Public Attributes | |
| static FiberHook * | hookNew = nullptr |
| Hook to be called when a Fiber is created. More... | |
| static FiberHook * | hookDead = nullptr |
| Hook to be called when a Fiber is destroyed. More... | |
| static uintptr_t const | ExitUnknown = (uintptr_t)-1 |
Protected Member Functions | |
| virtual void | changedName (string const &name) override |
| void | setState (State state, Timestamp const &t=Timestamp::now()) noexcept |
| void | fiberEntry_ () noexcept |
Protected Member Functions inherited from zth::UniqueIDBase | |
| virtual | ~UniqueIDBase ()=default |
Static Protected Member Functions | |
| static void | fiberEntry (void *that) noexcept |
Additional Inherited Members | |
Static Public Member Functions inherited from zth::UniqueID< Fiber > | |
| static uint64_t | getID () noexcept |
Public Attributes inherited from zth::Listable< Fiber > | |
| Listable * | prev |
| Listable * | left |
| Listable * | next |
| Listable * | right |
The fiber.
This class manages a fiber's context and state, given an entry function.
Usually, don't subclass this class (use zth::Runnable instead), as the zth::Fiber is owned by and part of a zth::Worker's administration. For example, a Fiber object is deleted by the Worker when it is dead.
| enum zth::Fiber::State |
|
inline |
|
inlinenoexcept |
|
inlineoverrideprotectedvirtual |
Reimplemented from zth::UniqueID< Fiber >.
|
inlinenoexcept |
|
inlinestaticprotectednoexcept |
|
inline |
|
inlinenoexcept |
|
inlinenoexcept |
|
inline |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlineprotectednoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
static |
|
static |
|
static |