Nebula
Loading...
Searching...
No Matches
jobs.cc File Reference
#include "jobs.h"
#include "profiling/profiling.h"

Namespaces

namespace  Jobs
 Job system allows for scheduling and execution of a parallel task.
 

Functions

JobPortId Jobs::CreateJobPort (const CreateJobPortInfo &info)
 create a new job port
 
void Jobs::DestroyJobPort (const JobPortId &id)
 destroy job port
 
JobId Jobs::CreateJob (const CreateJobInfo &info)
 create job
 
void Jobs::DestroyJob (const JobId &id)
 delete job
 
void Jobs::JobSchedule (const JobId &job, const JobPortId &port, const JobContext &ctx, const bool cycleThreads=true)
 schedule job to be executed
 
void Jobs::JobSchedule (const JobId &job, const JobPortId &port, const JobContext &ctx, const std::function< void()> &callback, const bool cycleThreads=true)
 schedule job with callback when finished
 
void Jobs::JobSchedule (const JobId &job, const JobPortId &port)
 schedule job without a context
 
void Jobs::JobScheduleSequence (const Util::Array< JobId > &jobs, const JobPortId &port, const Util::Array< JobContext > &contexts)
 schedule a sequence of jobs
 
void Jobs::JobScheduleSequence (const Util::Array< JobId > &jobs, const JobPortId &port, const Util::Array< JobContext > &contexts, const std::function< void()> &callback)
 schedule a sequence of jobs
 
void * Jobs::JobAllocateScratchMemory (const JobId &job, const Memory::HeapType heap, const SizeT size)
 allocate memory for job
 
JobSyncId Jobs::CreateJobSync (const CreateJobSyncInfo &info)
 create job sync
 
void Jobs::DestroyJobSync (const JobSyncId id)
 destroy job sync
 
void Jobs::JobSyncHostReset (const JobSyncId id)
 reset job sync on host
 
void Jobs::JobSyncHostSignal (const JobSyncId id, bool reset=true)
 signal job sync on host
 
void Jobs::JobSyncThreadSignal (const JobSyncId id, const JobPortId port, bool reset=true)
 put job sync on port, if reset is true, reset prior to signaling
 
void Jobs::JobSyncHostWait (const JobSyncId id, bool reset=false)
 wait for job on host side, if reset is true, resets after waiting
 
void Jobs::JobSyncThreadWait (const JobSyncId id, const JobPortId port, bool reset=false)
 wait for job on thread side, if reset is true, reset after waiting
 
bool Jobs::JobSyncSignaled (const JobSyncId id)
 returns true if sync object has been signaled
 
 Jobs::__ImplementClass (Jobs::JobThread, 'JBTH', Threading::Thread)
 

Variables

JobPortAllocator Jobs::jobPortAllocator (0xFFFF)
 
JobAllocator Jobs::jobAllocator (0xFFFFFFFF)
 
JobSyncAllocator Jobs::jobSyncAllocator (0xFFFFFFFF)