]> git.cworth.org Git - apitrace/blobdiff - common/os_workqueue.hpp
Fix compilation with clang.
[apitrace] / common / os_workqueue.hpp
index e41d8b27db3ef547ceb14502ddd9ecb0c4dac33d..047d3dbb4125967f72a83cad68015b30e180aea3 100644 (file)
@@ -12,38 +12,35 @@ class WorkQueue;
 
 class WorkQueueWork {
 protected:
-       friend class WorkQueue;
+    friend class WorkQueue;
 
 public:
-       virtual void run(void) = 0;
-       virtual ~WorkQueueWork(void) { }
+    virtual void run(void) = 0;
+    virtual ~WorkQueueWork(void) { }
 };
 
-extern "C"
-void *WorkQueue__entry_thunk(void *data);
-
 class WorkQueue {
-       pthread_t handle;
-       std::queue<WorkQueueWork *> work_queue;
+    std::queue<WorkQueueWork *> work_queue;
+
+    bool busy;
+    bool exit_workqueue;
+    os::condition_variable wake_cond;
+    os::condition_variable complete_cond;
 
-       bool busy;
-       bool exit_workqueue;
-       pthread_cond_t wake_cond;
-       pthread_cond_t complete_cond;
+    os::mutex mutex;
 
-       os::mutex lock;
+    os::thread thread;
 
-       void wake_up_thread(void);
-       void thread_entry(void);
-       int run_tasks(void);
-       friend void *WorkQueue__entry_thunk(void *data);
+    void wake_up_thread(void);
+    int run_tasks(void);
 public:
-       void queue_work(WorkQueueWork *work);
-       void flush(void);
-       void destroy(void);
+    void thread_entry(void);
+    void queue_work(WorkQueueWork *work);
+    void flush(void);
+    void destroy(void);
 
-       WorkQueue(void);
-       ~WorkQueue();
+    WorkQueue(void);
+    ~WorkQueue();
 };
 
 }