Peano
Loading...
Searching...
No Matches
tarch::multicore::taskfusion::ProcessReadyTask Class Reference

Process ready task. More...

#include <ProcessReadyTask.h>

Inheritance diagram for tarch::multicore::taskfusion::ProcessReadyTask:
Collaboration diagram for tarch::multicore::taskfusion::ProcessReadyTask:

Public Member Functions

 ProcessReadyTask (ReadyFusableTasks *taskQueue)
 
virtual bool run () override
 Run the task.
 
- Public Member Functions inherited from tarch::multicore::Task
 Task (int taskType, int priority)
 Construct task.
 
virtual ~Task ()
 
int getTaskType () const
 
int getPriority () const
 
void setPriority (int priority)
 Set priority.
 
virtual bool canFuse () const
 
virtual bool fuse (const std::list< Task * > &otherTasks, int targetDevice=Host)
 Fuse multiple tasks.
 
virtual std::string toString () const
 

Private Attributes

ReadyFusableTasks_taskQueue
 

Static Private Attributes

static const std::string ProcessFusedTasksStatisticsIdentifier = "tarch::multicore::taskfusion::process-fused-tasks"
 
static tarch::logging::Log _log
 

Additional Inherited Members

- Static Public Attributes inherited from tarch::multicore::Task
static constexpr int DefaultPriority = 1024
 
static constexpr int Host = -1
 
static constexpr int DontFuse = -1
 
- Protected Attributes inherited from tarch::multicore::Task
const int _taskType
 
int _priority
 

Detailed Description

Process ready task.

Each ready task is paired up with an instance of LogReadyTask which runs before. That is, we know that an instance of LogReadyTask has put the task of interest into the ready queue identified by _taskQueue. We therefore can now lock this queue and process all tasks from the queue in one rush. The task for which we have originally been created for through tarch::multicore::taskfusion::translateFusableTaskIntoTaskSequence() must be among the tasks in the queue, unless some other instance of ProcessReadyTask has already handled it. If this is the case, we are fine. Let's do all the other tasks that are in there and we are done.

Definition at line 35 of file ProcessReadyTask.h.

Constructor & Destructor Documentation

◆ ProcessReadyTask()

tarch::multicore::taskfusion::ProcessReadyTask::ProcessReadyTask ( ReadyFusableTasks * taskQueue)

Definition at line 12 of file ProcessReadyTask.cpp.

Member Function Documentation

◆ run()

Field Documentation

◆ _log

tarch::logging::Log tarch::multicore::taskfusion::ProcessReadyTask::_log
staticprivate

Definition at line 41 of file ProcessReadyTask.h.

◆ _taskQueue

ReadyFusableTasks* tarch::multicore::taskfusion::ProcessReadyTask::_taskQueue
private

Definition at line 37 of file ProcessReadyTask.h.

◆ ProcessFusedTasksStatisticsIdentifier

const std::string tarch::multicore::taskfusion::ProcessReadyTask::ProcessFusedTasksStatisticsIdentifier = "tarch::multicore::taskfusion::process-fused-tasks"
staticprivate

Definition at line 39 of file ProcessReadyTask.h.


The documentation for this class was generated from the following files: