1 #ifndef _OS_WORKQUEUE_HPP_
2 #define _OS_WORKQUEUE_HPP_
6 #include "os_thread.hpp"
15 friend class WorkQueue;
18 virtual void run(void) = 0;
19 virtual ~WorkQueueWork(void) { }
23 void *WorkQueue__entry_thunk(void *data);
26 std::queue<WorkQueueWork *> work_queue;
30 os::condition_variable wake_cond;
31 os::condition_variable complete_cond;
37 void wake_up_thread(void);
38 void thread_entry(void);
40 friend void *WorkQueue__entry_thunk(void *data);
42 void queue_work(WorkQueueWork *work);