16 #include <nn/pia/common/common_Definitions.h>
17 #include <nn/pia/common/common_OffsetList.h>
18 #include <nn/pia/common/common_Time.h>
19 #include <nn/pia/common/common_CriticalSection.h>
31 class BackgroundScheduler;
53 #elif NN_PIA_NINTENDOSDK
65 #error "invalid platform";
116 void Dispatch(uint32_t timeout = 0);
125 void EntryJob(Job* pJob,
bool isBackground);
135 void EntryJobNext(Job* pJob);
145 void ResetJob(Job* pJob);
153 const Time& GetDispatchedTime()
const
155 return m_DispatchedTime;
164 CriticalSection* GetCriticalSection()
166 return &m_CriticalSection;
173 uint32_t GetJobNum()
const;
181 void SetMonitoringData();
190 virtual void Trace(uint64_t flag)
const;
196 explicit Scheduler(int32_t backgroundThreadPriority);
201 virtual ~Scheduler();
204 Scheduler(
const Scheduler&);
205 Scheduler& operator=(
const Scheduler&);
208 static Scheduler* s_pInstance;
212 typedef OffsetList<Job> JobList;
216 JobList m_CountBasedJobList;
219 Time m_DispatchedTime;
222 uint32_t m_DispatchCalls;
224 mutable CriticalSection m_CriticalSection;
226 BackgroundScheduler* m_pBackgroundScheduler;