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);
27 std::queue<WorkQueueWork *> work_queue;
31 pthread_cond_t wake_cond;
32 pthread_cond_t complete_cond;
36 void wake_up_thread(void);
37 void thread_entry(void);
39 friend void *WorkQueue__entry_thunk(void *data);
41 void queue_work(WorkQueueWork *work);