24#ifndef MYSQL_SCHEDULER_BASE_DEPENDENCY_TRACKER_H
25#define MYSQL_SCHEDULER_BASE_DEPENDENCY_TRACKER_H
28#include <condition_variable>
32#include <unordered_map>
33#include <unordered_set>
83 const Task_id &task,
bool is_finished) = 0;
MySQL wrapper for a mutex, template which may be specialized with a specific implementation of a mute...
Definition: mutex_wrapper.h:38
Base interface for a dependency tracker.
Definition: base_dependency_tracker.h:53
virtual ~Base_dependency_tracker()=default
Destructor.
virtual bool check_ready(const Task_id &task)=0
check_ready
virtual bool add_dependency(const Task_id_type &predecessor, const Task_id_type &successor)=0
add_dependency
virtual bool activate_task(const Task_id &task)=0
Register task in the system to prevent adding dependencies on non-existing tasks and adding active de...
virtual std::vector< Task_id > mark_dependency_met(const Task_id &task, bool is_finished)=0
Task is finished, mark all dependencies of this task as met.
Represents the identifier of a task ingested by the scheduler,.
Definition: task_id.h:41
Mutex_wrapper Mutex
Definition: mutex_srv.h:40
Definition: base_dependency_tracker.h:41
std::unique_ptr< Base_dependency_tracker > Dependency_tracker_ptr
Definition: base_dependency_tracker.h:89