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

Side by Side Diff: mojo/public/cpp/bindings/tests/bind_task_runner_unittest.cc

Issue 2888053002: Rename TaskRunner::RunsTasksOnCurrentThread() in //extensions, //headless, //mojo (Closed)
Patch Set: rebase Created 3 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <utility> 5 #include <utility>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/callback.h" 8 #include "base/callback.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 } 47 }
48 task_ready_.Signal(); 48 task_ready_.Signal();
49 return true; 49 return true;
50 } 50 }
51 bool RunsTasksInCurrentSequence() const override { 51 bool RunsTasksInCurrentSequence() const override {
52 return base::PlatformThread::CurrentRef() == thread_id_; 52 return base::PlatformThread::CurrentRef() == thread_id_;
53 } 53 }
54 54
55 // Only quits when Quit() is called. 55 // Only quits when Quit() is called.
56 void Run() { 56 void Run() {
57 DCHECK(RunsTasksOnCurrentThread()); 57 DCHECK(RunsTasksInCurrentSequence());
58 quit_called_ = false; 58 quit_called_ = false;
59 59
60 while (true) { 60 while (true) {
61 { 61 {
62 base::AutoLock locker(lock_); 62 base::AutoLock locker(lock_);
63 while (!tasks_.empty()) { 63 while (!tasks_.empty()) {
64 auto task = std::move(tasks_.front()); 64 auto task = std::move(tasks_.front());
65 tasks_.pop(); 65 tasks_.pop();
66 66
67 { 67 {
68 base::AutoUnlock unlocker(lock_); 68 base::AutoUnlock unlocker(lock_);
69 std::move(task).Run(); 69 std::move(task).Run();
70 if (quit_called_) 70 if (quit_called_)
71 return; 71 return;
72 } 72 }
73 } 73 }
74 } 74 }
75 task_ready_.Wait(); 75 task_ready_.Wait();
76 } 76 }
77 } 77 }
78 78
79 void Quit() { 79 void Quit() {
80 DCHECK(RunsTasksOnCurrentThread()); 80 DCHECK(RunsTasksInCurrentSequence());
81 quit_called_ = true; 81 quit_called_ = true;
82 } 82 }
83 83
84 // Waits until one task is ready and runs it. 84 // Waits until one task is ready and runs it.
85 void RunOneTask() { 85 void RunOneTask() {
86 DCHECK(RunsTasksOnCurrentThread()); 86 DCHECK(RunsTasksInCurrentSequence());
87 87
88 while (true) { 88 while (true) {
89 { 89 {
90 base::AutoLock locker(lock_); 90 base::AutoLock locker(lock_);
91 if (!tasks_.empty()) { 91 if (!tasks_.empty()) {
92 auto task = std::move(tasks_.front()); 92 auto task = std::move(tasks_.front());
93 tasks_.pop(); 93 tasks_.pop();
94 94
95 { 95 {
96 base::AutoUnlock unlocker(lock_); 96 base::AutoUnlock unlocker(lock_);
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
386 EXPECT_TRUE(sender_impl_error); 386 EXPECT_TRUE(sender_impl_error);
387 connection_ptr_task_runner_->Run(); 387 connection_ptr_task_runner_->Run();
388 EXPECT_TRUE(connection_ptr_error); 388 EXPECT_TRUE(connection_ptr_error);
389 sender_ptr_task_runner_->Run(); 389 sender_ptr_task_runner_->Run();
390 EXPECT_TRUE(sender_ptr_error); 390 EXPECT_TRUE(sender_ptr_error);
391 } 391 }
392 392
393 } // namespace 393 } // namespace
394 } // namespace test 394 } // namespace test
395 } // namespace mojo 395 } // namespace mojo
OLDNEW
« no previous file with comments | « mojo/public/cpp/bindings/lib/interface_endpoint_client.cc ('k') | mojo/public/cpp/bindings/thread_safe_interface_ptr.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698