class
#include <taskflow/algorithm/pipeline.hpp>
Pipeflow class to create a pipeflow object used by the pipe callable
Pipeflow represents a scheduling token in the pipeline scheduling framework. A pipeflow is created by the pipeline scheduler at runtime to pass to the pipe callable. Users can query the present statistics of that scheduling token, including the line identifier, pipe identifier, and token identifier, and build their application algorithms based on these statistics. At the first stage, users can explicitly call the stop method to stop the pipeline scheduler.
tf::Pipe{tf::PipeType::SERIAL, [](tf::Pipeflow& pf){ std::cout << "token id=" << pf.token() << " at line=" << pf.line() << " at pipe=" << pf.pipe() << '\n'; }};
Pipeflow can only be created privately by the tf::
Constructors, destructors, conversion operators
- Pipeflow() defaulted
- default constructor
Public functions
- auto line() const -> size_t
- queries the line identifier of the present token
- auto pipe() const -> size_t
- queries the pipe identifier of the present token
- auto token() const -> size_t
- queries the token identifier
- void stop()
- stops the pipeline scheduling
- auto num_deferrals() const -> size_t
- queries the number of deferrals
- void defer(size_t token)
- pushes token in _dependents
Function documentation
void tf:: Pipeflow:: stop()
stops the pipeline scheduling
Only the first pipe can call this method to stop the pipeline. Calling stop from other pipes will throw exception.
void tf:: Pipeflow:: defer(size_t token)
pushes token in _dependents
Only the first pipe can call this method to defer the current scheduling token to the given token.