20 lines
350 B
C++
20 lines
350 B
C++
|
#pragma once
|
||
|
|
||
|
#include <exe/executors/task.hpp>
|
||
|
|
||
|
namespace exe::executors {
|
||
|
|
||
|
enum class Hint {
|
||
|
UpToYou = 1, // Rely on executor scheduling decision
|
||
|
Next = 2, // Use LIFO scheduling
|
||
|
Yield = 3
|
||
|
};
|
||
|
|
||
|
struct IExecutor {
|
||
|
virtual ~IExecutor() = default;
|
||
|
|
||
|
virtual void Execute(TaskBase* task, Hint hint) = 0;
|
||
|
};
|
||
|
|
||
|
} // namespace exe::executors
|