7#include <condition_variable>
69 std::optional<JobHandle>
getJob();
80 std::condition_variable
_cv;
145 template <
typename ResourceType>
147 static_assert(std::is_base_of_v<ResourceTag, ResourceType>,
"ResourceType is not tagged with ResourceTag");
160 template <
typename ResourceType>
162 static_assert(std::is_base_of_v<ResourceTag, ResourceType>,
"ResourceType is not tagged with ResourceTag");
Definition JobSystem.hpp:114
JobBuilder & writeResource()
Definition JobSystem.hpp:161
JobBuilder & readResource()
Definition JobSystem.hpp:146
JobBuilder & operator=(const JobBuilder &)=delete
JobBuilder & writeResource(TypeID typeId)
Definition JobSystem.hpp:186
JobBuilder & operator=(JobBuilder &&)=delete
JobBuilder & readResource(TypeID typeId)
Definition JobSystem.hpp:174
void useMainThread()
Definition JobSystem.hpp:196
Job _job
Definition JobSystem.hpp:206
JobHandle submit()
Definition JobSystem.cpp:159
JobBuilder & dependsOn(JobHandle handle)
Definition JobSystem.cpp:154
JobBuilder(const JobBuilder &)=delete
JobBuilder(JobBuilder &&)=delete
Definition JobSystem.hpp:24
void markJobAsDone(JobHandle handle)
Definition JobSystem.cpp:139
TypeSet _resourcesWritten
Definition JobSystem.hpp:84
std::mutex _mutex
Definition JobSystem.hpp:79
std::optional< JobHandle > getJob()
Definition JobSystem.cpp:105
static JobSystem & getInstance()
Definition JobSystem.cpp:96
JobExecutor pull()
Definition JobSystem.cpp:14
JobStatus
Definition JobSystem.hpp:26
bool isScheduled(JobHandle handle) const
Definition JobSystem.cpp:101
JobHandle _nextJobHandle
Definition JobSystem.hpp:81
TypeSet _resourcesRead
Definition JobSystem.hpp:83
SparseSet< Job > _jobs
Definition JobSystem.hpp:87
std::condition_variable _cv
Definition JobSystem.hpp:80
JobHandle submit(Job &&job)
Definition JobSystem.cpp:80
void wait()
Definition JobSystem.cpp:40
Definition SparseSet.hpp:22
uint32_t Entity
Definition Entity.hpp:7
std::function< void()> JobExecutor
Definition JobSystem.hpp:17
std::set< TypeID > TypeSet
Definition TypeInfo.hpp:28
Entity JobHandle
Definition JobSystem.hpp:16
Definition JobSystem.hpp:28
JobExecutor function
Definition JobSystem.hpp:38
TypeSet writeResources
Definition JobSystem.hpp:40
TypeSet readResources
Definition JobSystem.hpp:39
std::vector< JobHandle > dependsOn
Definition JobSystem.hpp:37
bool mainThread
Definition JobSystem.hpp:35
JobStatus status
Definition JobSystem.hpp:36
Job(Job &&) noexcept=default
Definition TypeInfo.hpp:22