Index: webrtc/modules/utility/include/process_thread.h |
diff --git a/webrtc/modules/utility/include/process_thread.h b/webrtc/modules/utility/include/process_thread.h |
index f6913ea3167481eef084579aaf38be0c54088aeb..8524a5188eb2d9446d5b1c40a08549ef488061b1 100644 |
--- a/webrtc/modules/utility/include/process_thread.h |
+++ b/webrtc/modules/utility/include/process_thread.h |
@@ -15,17 +15,23 @@ |
#include "webrtc/typedefs.h" |
+#if defined(WEBRTC_WIN) |
+// Due to a bug in the std::unique_ptr implementation that ships with MSVS, |
+// we need the full definition of QueuedTask, on Windows. |
+#include "webrtc/base/task_queue.h" |
+#else |
+namespace rtc { |
+class QueuedTask; |
+} |
+#endif |
+ |
namespace webrtc { |
class Module; |
-class ProcessTask { |
- public: |
- ProcessTask() {} |
- virtual ~ProcessTask() {} |
- |
- virtual void Run() = 0; |
-}; |
- |
+// TODO(tommi): ProcessThread probably doesn't need to be a virtual |
+// interface. There exists one override besides ProcessThreadImpl, |
+// MockProcessThread, but when looking at how it is used, it seems |
+// a nullptr might suffice (or simply an actual ProcessThread instance). |
class ProcessThread { |
public: |
virtual ~ProcessThread(); |
@@ -51,7 +57,7 @@ class ProcessThread { |
// construction thread of the ProcessThread instance, if the task did not |
// get a chance to run (e.g. posting the task while shutting down or when |
// the thread never runs). |
- virtual void PostTask(std::unique_ptr<ProcessTask> task) = 0; |
+ virtual void PostTask(std::unique_ptr<rtc::QueuedTask> task) = 0; |
// Adds a module that will start to receive callbacks on the worker thread. |
// Can be called from any thread. |