 Chromium Code Reviews
 Chromium Code Reviews Issue 3003643002:
  Allow external TaskQueue implementations on Linux  (Closed)
    
  
    Issue 3003643002:
  Allow external TaskQueue implementations on Linux  (Closed) 
  | Index: webrtc/rtc_base/task_queue.h | 
| diff --git a/webrtc/rtc_base/task_queue.h b/webrtc/rtc_base/task_queue.h | 
| index 218fce9a3b9854529e5683731915b13324aaea25..ec506d5a2d1f6929809345be20ee13d3b0c1253c 100644 | 
| --- a/webrtc/rtc_base/task_queue.h | 
| +++ b/webrtc/rtc_base/task_queue.h | 
| @@ -15,23 +15,17 @@ | 
| #include <memory> | 
| #include <queue> | 
| -#if defined(WEBRTC_MAC) && !defined(WEBRTC_BUILD_LIBEVENT) | 
| +#if defined(WEBRTC_MAC) | 
| #include <dispatch/dispatch.h> | 
| #endif | 
| #include "webrtc/rtc_base/constructormagic.h" | 
| #include "webrtc/rtc_base/criticalsection.h" | 
| -#if defined(WEBRTC_WIN) || defined(WEBRTC_BUILD_LIBEVENT) | 
| -#include "webrtc/rtc_base/platform_thread.h" | 
| -#endif | 
| - | 
| -#if defined(WEBRTC_BUILD_LIBEVENT) | 
| -#include "webrtc/rtc_base/refcountedobject.h" | 
| #include "webrtc/rtc_base/scoped_ref_ptr.h" | 
| -struct event_base; | 
| -struct event; | 
| +#if defined(WEBRTC_WIN) | 
| +#include "webrtc/rtc_base/platform_thread.h" | 
| #endif | 
| namespace rtc { | 
| @@ -242,32 +236,7 @@ class LOCKABLE TaskQueue { | 
| } | 
| private: | 
| -#if defined(WEBRTC_BUILD_LIBEVENT) | 
| - static void 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 ReplyTaskOwner; | 
| - class PostAndReplyTask; | 
| - class SetTimerTask; | 
| - | 
| - typedef RefCountedObject<ReplyTaskOwner> ReplyTaskOwnerRef; | 
| - | 
| - void PrepareReplyTask(scoped_refptr<ReplyTaskOwnerRef> 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<scoped_refptr<ReplyTaskOwnerRef>> pending_replies_ | 
| - GUARDED_BY(pending_lock_); | 
| -#elif defined(WEBRTC_MAC) | 
| +#if defined(WEBRTC_MAC) | 
| struct QueueContext; | 
| struct TaskContext; | 
| struct PostTaskAndReplyContext; | 
| @@ -295,7 +264,8 @@ class LOCKABLE TaskQueue { | 
| std::queue<std::unique_ptr<QueuedTask>> pending_ GUARDED_BY(pending_lock_); | 
| HANDLE in_queue_; | 
| #else | 
| -#error not supported. | 
| + class Impl; | 
| + const scoped_refptr<Impl> impl_; | 
| 
nisse-webrtc
2017/08/22 13:39:44
I would have expected a unique_ptr here. Who else
 
perkj_webrtc
2017/08/22 18:52:38
To be used to implement PostAndReply on a differen
 | 
| #endif | 
| RTC_DISALLOW_COPY_AND_ASSIGN(TaskQueue); |