Apollo  6.0
Open source self driving car software
Classes | Typedefs | Functions
apollo::cyber::scheduler Namespace Reference

Classes

class  ChoreographyContext
 
class  ClassicContext
 
class  CvWrapper
 
class  MutexWrapper
 
class  Processor
 
class  ProcessorContext
 
class  Scheduler
 
class  SchedulerChoreography
 
class  SchedulerClassic
 
struct  Snapshot
 

Typedefs

using CROUTINE_QUEUE = std::vector< std::shared_ptr< CRoutine > >
 
using MULTI_PRIO_QUEUE = std::array< CROUTINE_QUEUE, MAX_PRIO >
 
using CR_GROUP = std::unordered_map< std::string, MULTI_PRIO_QUEUE >
 
using LOCK_QUEUE = std::array< base::AtomicRWLock, MAX_PRIO >
 
using RQ_LOCK_GROUP = std::unordered_map< std::string, LOCK_QUEUE >
 
using GRP_WQ_MUTEX = std::unordered_map< std::string, MutexWrapper >
 
using GRP_WQ_CV = std::unordered_map< std::string, CvWrapper >
 
using NOTIFY_GRP = std::unordered_map< std::string, int >
 

Functions

void ParseCpuset (const std::string &str, std::vector< int > *cpuset)
 
void SetSchedAffinity (std::thread *thread, const std::vector< int > &cpus, const std::string &affinity, int cpu_id=-1)
 
void SetSchedPolicy (std::thread *thread, std::string spolicy, int sched_priority, pid_t tid=-1)
 
SchedulerInstance ()
 
void CleanUp ()
 

Typedef Documentation

◆ CR_GROUP

using apollo::cyber::scheduler::CR_GROUP = typedef std::unordered_map<std::string, MULTI_PRIO_QUEUE>

◆ CROUTINE_QUEUE

using apollo::cyber::scheduler::CROUTINE_QUEUE = typedef std::vector<std::shared_ptr<CRoutine> >

◆ GRP_WQ_CV

using apollo::cyber::scheduler::GRP_WQ_CV = typedef std::unordered_map<std::string, CvWrapper>

◆ GRP_WQ_MUTEX

using apollo::cyber::scheduler::GRP_WQ_MUTEX = typedef std::unordered_map<std::string, MutexWrapper>

◆ LOCK_QUEUE

using apollo::cyber::scheduler::LOCK_QUEUE = typedef std::array<base::AtomicRWLock, MAX_PRIO>

◆ MULTI_PRIO_QUEUE

using apollo::cyber::scheduler::MULTI_PRIO_QUEUE = typedef std::array<CROUTINE_QUEUE, MAX_PRIO>

◆ NOTIFY_GRP

using apollo::cyber::scheduler::NOTIFY_GRP = typedef std::unordered_map<std::string, int>

◆ RQ_LOCK_GROUP

using apollo::cyber::scheduler::RQ_LOCK_GROUP = typedef std::unordered_map<std::string, LOCK_QUEUE>

Function Documentation

◆ CleanUp()

void apollo::cyber::scheduler::CleanUp ( )

◆ Instance()

Scheduler* apollo::cyber::scheduler::Instance ( )

◆ ParseCpuset()

void apollo::cyber::scheduler::ParseCpuset ( const std::string &  str,
std::vector< int > *  cpuset 
)

◆ SetSchedAffinity()

void apollo::cyber::scheduler::SetSchedAffinity ( std::thread *  thread,
const std::vector< int > &  cpus,
const std::string &  affinity,
int  cpu_id = -1 
)

◆ SetSchedPolicy()

void apollo::cyber::scheduler::SetSchedPolicy ( std::thread *  thread,
std::string  spolicy,
int  sched_priority,
pid_t  tid = -1 
)