Index: third_party/webrtc_overrides/webrtc/base/task_queue.h |
diff --git a/third_party/webrtc_overrides/webrtc/base/task_queue.h b/third_party/webrtc_overrides/webrtc/base/task_queue.h |
index f2841acccf3e4bbf2fe731cde3032c8b55758bf8..1ecc7549e5a0efa9f0126e0c22f8a4a9faba797f 100644 |
--- a/third_party/webrtc_overrides/webrtc/base/task_queue.h |
+++ b/third_party/webrtc_overrides/webrtc/base/task_queue.h |
@@ -11,25 +11,11 @@ |
#ifndef WEBRTC_BASE_TASK_QUEUE_H_ |
#define WEBRTC_BASE_TASK_QUEUE_H_ |
-#include <list> |
#include <memory> |
-#include <unordered_map> |
+#include <stdint.h> |
-#if defined(WEBRTC_MAC) && !defined(WEBRTC_BUILD_LIBEVENT) |
-#include <dispatch/dispatch.h> |
-#endif |
- |
-#include "third_party/webrtc/base/constructormagic.h" |
-#include "third_party/webrtc/base/criticalsection.h" |
- |
-#if defined(WEBRTC_WIN) || defined(WEBRTC_BUILD_LIBEVENT) |
-#include "third_party/webrtc/base/platform_thread.h" |
-#endif |
- |
-#if defined(WEBRTC_BUILD_LIBEVENT) |
-struct event_base; |
-struct event; |
-#endif |
+#include "base/macros.h" |
+#include "third_party/webrtc/base/thread_annotations.h" |
namespace rtc { |
@@ -49,7 +35,7 @@ class QueuedTask { |
virtual bool Run() = 0; |
private: |
- RTC_DISALLOW_COPY_AND_ASSIGN(QueuedTask); |
+ DISALLOW_COPY_AND_ASSIGN(QueuedTask); |
}; |
// Simple implementation of QueuedTask for use with rtc::Bind and lambdas. |
@@ -225,55 +211,10 @@ class LOCKABLE TaskQueue { |
} |
private: |
-#if defined(WEBRTC_BUILD_LIBEVENT) |
- static bool ThreadMain(void* context); |
- static void OnWakeup(int socket, short flags, void* context); // NOLINT |
- static void RunTask(int fd, short flags, void* context); // NOLINT |
- static void RunTimer(int fd, short flags, void* context); // NOLINT |
- |
- class PostAndReplyTask; |
- class SetTimerTask; |
- |
- void PrepareReplyTask(PostAndReplyTask* reply_task); |
- void ReplyTaskDone(PostAndReplyTask* reply_task); |
- |
- struct QueueContext; |
- |
- int wakeup_pipe_in_ = -1; |
- int wakeup_pipe_out_ = -1; |
- event_base* event_base_; |
- std::unique_ptr<event> wakeup_event_; |
- PlatformThread thread_; |
- rtc::CriticalSection pending_lock_; |
- std::list<std::unique_ptr<QueuedTask>> pending_ GUARDED_BY(pending_lock_); |
- std::list<PostAndReplyTask*> pending_replies_ GUARDED_BY(pending_lock_); |
-#elif defined(WEBRTC_MAC) |
- struct QueueContext; |
- struct TaskContext; |
- struct PostTaskAndReplyContext; |
- dispatch_queue_t queue_; |
- QueueContext* const context_; |
-#elif defined(WEBRTC_WIN) |
- typedef std::unordered_map<UINT_PTR, std::unique_ptr<QueuedTask>> |
- DelayedTasks; |
- static bool ThreadMain(void* context); |
- static bool ProcessQueuedMessages(DelayedTasks* delayed_tasks); |
- |
- class WorkerThread : public PlatformThread { |
- public: |
- WorkerThread(ThreadRunFunction func, void* obj, const char* thread_name) |
- : PlatformThread(func, obj, thread_name) {} |
- |
- bool QueueAPC(PAPCFUNC apc_function, ULONG_PTR data) { |
- return PlatformThread::QueueAPC(apc_function, data); |
- } |
- }; |
- WorkerThread thread_; |
-#else |
-#error not supported. |
-#endif |
+ class WorkerThread; |
- RTC_DISALLOW_COPY_AND_ASSIGN(TaskQueue); |
+ std::unique_ptr<WorkerThread> thread_; |
+ DISALLOW_COPY_AND_ASSIGN(TaskQueue); |
}; |
} // namespace rtc |