Changeset View
Changeset View
Standalone View
Standalone View
src/scheduler.h
Show First 20 Lines • Show All 101 Lines • ▼ Show 20 Lines | private: | ||||
CCriticalSection m_cs_callbacks_pending; | CCriticalSection m_cs_callbacks_pending; | ||||
std::list<std::function<void(void)>> m_callbacks_pending; | std::list<std::function<void(void)>> m_callbacks_pending; | ||||
bool m_are_callbacks_running = false; | bool m_are_callbacks_running = false; | ||||
void MaybeScheduleProcessQueue(); | void MaybeScheduleProcessQueue(); | ||||
void ProcessQueue(); | void ProcessQueue(); | ||||
public: | public: | ||||
SingleThreadedSchedulerClient(CScheduler *pschedulerIn) | explicit SingleThreadedSchedulerClient(CScheduler *pschedulerIn) | ||||
: m_pscheduler(pschedulerIn) {} | : m_pscheduler(pschedulerIn) {} | ||||
void AddToProcessQueue(std::function<void(void)> func); | void AddToProcessQueue(std::function<void(void)> func); | ||||
// Processes all remaining queue members on the calling thread, blocking | // Processes all remaining queue members on the calling thread, blocking | ||||
// until queue is empty | // until queue is empty | ||||
// Must be called after the CScheduler has no remaining processing threads! | // Must be called after the CScheduler has no remaining processing threads! | ||||
void EmptyQueue(); | void EmptyQueue(); | ||||
}; | }; | ||||
#endif | #endif |