YACLib
C++ library for concurrent tasks execution
|
#include <strand.hpp>
Public Member Functions | |
Strand (IExecutorPtr e) noexcept | |
~Strand () noexcept override | |
Type | Tag () const noexcept final |
Return type of this executor. | |
bool | Alive () const noexcept final |
Return true if executor still alive, that means job passed to submit will be Call. | |
void | Submit (Job &job) noexcept final |
Submit given job. | |
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 |
Additional Inherited Members | |
Public Types inherited from yaclib::IExecutor | |
enum class | Type : unsigned char { Custom = 0 , Inline = 1 , Manual = 2 , Strand = 3 , SingleThread = 4 , FairThreadPool = 5 , GolangThreadPool = 6 } |
Definition at line 10 of file strand.hpp.
|
explicitnoexcept |
Definition at line 9 of file strand.cpp.
References yaclib::MakeContract().
|
overridenoexcept |
Definition at line 12 of file strand.cpp.
References YACLIB_DEBUG.
|
finalvirtualnoexcept |
Return true if executor still alive, that means job passed to submit will be Call.
Implements yaclib::IExecutor.
Definition at line 20 of file strand.cpp.
References yaclib::IExecutor::Alive().
Submit given job.
This method may either Call or Drop the job
This method increments reference counter if task is submitted.
Call if executor is Alive, otherwise Drop
job | job to execute |
Implements yaclib::IExecutor.
Definition at line 24 of file strand.cpp.
References yaclib::IRef::IncRef(), and yaclib::MakeContract().
|
finalvirtualnoexcept |
Return type of this executor.
Implements yaclib::IExecutor.
Definition at line 16 of file strand.cpp.
References yaclib::IExecutor::Strand.