20 lines
395 B
C++
20 lines
395 B
C++
|
#pragma once
|
||
|
|
||
|
#include <wheels/intrusive/forward_list.hpp>
|
||
|
#include <functional>
|
||
|
#include <wheels/support/function.hpp>
|
||
|
|
||
|
namespace exe::executors {
|
||
|
|
||
|
struct ITask {
|
||
|
virtual ~ITask() = default;
|
||
|
|
||
|
virtual void Run() noexcept = 0;
|
||
|
virtual void Discard() noexcept = 0;
|
||
|
};
|
||
|
|
||
|
// Intrusive task
|
||
|
struct TaskBase : ITask, wheels::IntrusiveForwardListNode<TaskBase> {};
|
||
|
|
||
|
} // namespace exe::executors
|