Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(181)

Unified Diff: third_party/webrtc_overrides/webrtc/base/task_queue.cc

Issue 2297643003: Revert of Override the webrtc TaskQueue implementation. (Closed)
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/webrtc_overrides/webrtc/base/task_queue.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/webrtc_overrides/webrtc/base/task_queue.cc
diff --git a/third_party/webrtc_overrides/webrtc/base/task_queue.cc b/third_party/webrtc_overrides/webrtc/base/task_queue.cc
deleted file mode 100644
index 583554da33e5c27be5945a566dd8f6ec888c3663..0000000000000000000000000000000000000000
--- a/third_party/webrtc_overrides/webrtc/base/task_queue.cc
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright 2016 The WebRTC Project Authors. All rights reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "third_party/webrtc_overrides/webrtc/base/task_queue.h"
-
-#include "base/bind.h"
-#include "base/lazy_instance.h"
-#include "base/threading/thread.h"
-#include "base/threading/thread_local.h"
-
-namespace rtc {
-namespace {
-
-void RunTask(std::unique_ptr<QueuedTask> task) {
- if (!task->Run())
- task.release();
-}
-
-class PostAndReplyTask : public QueuedTask {
- public:
- PostAndReplyTask(
- std::unique_ptr<QueuedTask> task,
- std::unique_ptr<QueuedTask> reply,
- const scoped_refptr<base::SingleThreadTaskRunner>& reply_task_runner)
- : task_(std::move(task)),
- reply_(std::move(reply)),
- reply_task_runner_(reply_task_runner) {}
-
- ~PostAndReplyTask() override {}
-
- private:
- bool Run() override {
- if (!task_->Run())
- task_.release();
-
- reply_task_runner_->PostTask(FROM_HERE,
- base::Bind(&RunTask, base::Passed(&reply_)));
- return true;
- }
-
- std::unique_ptr<QueuedTask> task_;
- std::unique_ptr<QueuedTask> reply_;
- scoped_refptr<base::SingleThreadTaskRunner> reply_task_runner_;
-};
-
-// A lazily created thread local storage for quick access to a TaskQueue.
-base::LazyInstance<base::ThreadLocalPointer<TaskQueue>>::Leaky lazy_tls_ptr =
- LAZY_INSTANCE_INITIALIZER;
-
-} // namespace
-
-bool TaskQueue::IsCurrent() const {
- return Current() == this;
-}
-
-class TaskQueue::WorkerThread : public base::Thread {
- public:
- WorkerThread(const char* queue_name, TaskQueue* queue);
- ~WorkerThread() override;
-
- private:
- virtual void Init() override;
-
- TaskQueue* const queue_;
-};
-
-TaskQueue::WorkerThread::WorkerThread(const char* queue_name, TaskQueue* queue)
- : base::Thread(queue_name), queue_(queue) {}
-
-void TaskQueue::WorkerThread::Init() {
- lazy_tls_ptr.Pointer()->Set(queue_);
-}
-
-TaskQueue::WorkerThread::~WorkerThread() {
- DCHECK(!Thread::IsRunning());
-}
-
-TaskQueue::TaskQueue(const char* queue_name)
- : thread_(
- std::unique_ptr<WorkerThread>(new WorkerThread(queue_name, this))) {
- DCHECK(queue_name);
- bool result = thread_->Start();
- CHECK(result);
-}
-
-TaskQueue::~TaskQueue() {
- DCHECK(!IsCurrent());
- thread_->Stop();
-}
-
-// static
-TaskQueue* TaskQueue::Current() {
- return lazy_tls_ptr.Pointer()->Get();
-}
-
-// static
-bool TaskQueue::IsCurrent(const char* queue_name) {
- TaskQueue* current = Current();
- return current && current->thread_->thread_name().compare(queue_name) == 0;
-}
-
-void TaskQueue::PostTask(std::unique_ptr<QueuedTask> task) {
- thread_->task_runner()->PostTask(FROM_HERE,
- base::Bind(&RunTask, base::Passed(&task)));
-}
-
-void TaskQueue::PostDelayedTask(std::unique_ptr<QueuedTask> task,
- uint32_t milliseconds) {
- thread_->task_runner()->PostDelayedTask(
- FROM_HERE, base::Bind(&RunTask, base::Passed(&task)),
- base::TimeDelta::FromMilliseconds(milliseconds));
-}
-
-void TaskQueue::PostTaskAndReply(std::unique_ptr<QueuedTask> task,
- std::unique_ptr<QueuedTask> reply,
- TaskQueue* reply_queue) {
- PostTask(std::unique_ptr<QueuedTask>(new PostAndReplyTask(
- std::move(task), std::move(reply), reply_queue->thread_->task_runner())));
-}
-
-void TaskQueue::PostTaskAndReply(std::unique_ptr<QueuedTask> task,
- std::unique_ptr<QueuedTask> reply) {
- thread_->task_runner()->PostTaskAndReply(
- FROM_HERE, base::Bind(&RunTask, base::Passed(&task)),
- base::Bind(&RunTask, base::Passed(&reply)));
-}
-
-} // namespace rtc
« no previous file with comments | « third_party/webrtc_overrides/webrtc/base/task_queue.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698