YACLib
C++ library for concurrent tasks execution
|
#include <base_core.hpp>
Public Types | |
enum | State : std::uintptr_t { kEmpty = std::uintptr_t{0} , kResult = std::numeric_limits<std::uintptr_t>::max() } |
template<bool SymmetricTransfer> | |
using | Transfer = InlineCore * |
Public Member Functions | |
void | StoreCallback (InlineCore &callback) noexcept |
bool | Empty () const noexcept |
bool | SetCallback (InlineCore &callback) noexcept |
bool | Reset () noexcept |
void | CallInline (InlineCore &callback) noexcept |
template<bool SymmetricTransfer> | |
Transfer< SymmetricTransfer > | SetInline (InlineCore &callback) noexcept |
template<bool SymmetricTransfer> | |
Transfer< SymmetricTransfer > | SetResult () noexcept |
void | MoveExecutorTo (BaseCore &callback) noexcept |
Public Member Functions inherited from yaclib::detail::InlineCore | |
virtual InlineCore * | Here (InlineCore &caller) noexcept=0 |
Public Member Functions inherited from yaclib::Job | |
virtual void | Drop () noexcept |
Public Member Functions inherited from yaclib::IFunc | |
virtual void | Call () noexcept |
Public Member Functions inherited from yaclib::IRef | |
virtual void | IncRef () noexcept |
Increments reference counter. | |
virtual void | DecRef () noexcept |
Decrements reference counter. | |
virtual | ~IRef () noexcept=default |
Public Attributes | |
IExecutorPtr | _executor {NoRefTag{}, &MakeInline()} |
Public Attributes inherited from yaclib::detail::Node | |
Node * | next = nullptr |
Protected Member Functions | |
BaseCore (State callback) noexcept | |
Protected Attributes | |
yaclib_std::atomic_uintptr_t | _callback |
Definition at line 20 of file base_core.hpp.
using yaclib::detail::BaseCore::Transfer = InlineCore* |
Definition at line 42 of file base_core.hpp.
enum yaclib::detail::BaseCore::State : std::uintptr_t |
Enumerator | |
---|---|
kEmpty | |
kResult |
Definition at line 22 of file base_core.hpp.
|
explicitprotectednoexcept |
Definition at line 60 of file base_core.cpp.
References yaclib::MakeContract().
|
noexcept |
Definition at line 33 of file base_core.cpp.
References yaclib::MakeContract(), yaclib::detail::SetCallback(), and YACLIB_ASSERT.
|
noexcept |
Definition at line 13 of file base_core.cpp.
References _callback, kEmpty, kResult, yaclib::MakeContract(), and YACLIB_DEBUG.
Definition at line 63 of file base_core.cpp.
References yaclib::MakeContract(), and YACLIB_ASSERT.
|
noexcept |
Definition at line 28 of file base_core.cpp.
References _callback, kEmpty, kResult, and yaclib::MakeContract().
|
noexcept |
Definition at line 19 of file base_core.cpp.
References yaclib::MakeContract(), and YACLIB_ASSERT.
|
noexcept |
Definition at line 41 of file base_core.cpp.
References yaclib::MakeContract(), and yaclib::detail::SetCallback().
Referenced by yaclib::detail::SetCallback().
|
noexcept |
Definition at line 49 of file base_core.cpp.
References _callback, kEmpty, kResult, yaclib::MakeContract(), and YACLIB_ASSERT.
|
noexcept |
Definition at line 8 of file base_core.cpp.
References yaclib::MakeContract().
Referenced by yaclib::detail::SetCallback().
|
protected |
Definition at line 61 of file base_core.hpp.
Referenced by Empty(), Reset(), and SetResult().
IExecutorPtr yaclib::detail::BaseCore::_executor {NoRefTag{}, &MakeInline()} |
Definition at line 64 of file base_core.hpp.
Referenced by yaclib::detail::MutexImpl< FIFO, Batching >::AwaitUnlock(), yaclib::detail::MutexImpl< FIFO, Batching >::AwaitUnlockOn(), and yaclib::detail::MutexImpl< FIFO, Batching >::UnlockHereAwait().