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

Side by Side Diff: base/message_loop/message_loop.cc

Issue 853903003: Cleanup dead code in base/ as found by Scythe. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix MessageLoop::ReloadWorkQueue() Created 5 years, 11 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
« no previous file with comments | « base/message_loop/message_loop.h ('k') | base/process/process_metrics.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 MessageLoop::TaskObserver::~TaskObserver() { 110 MessageLoop::TaskObserver::~TaskObserver() {
111 } 111 }
112 112
113 MessageLoop::DestructionObserver::~DestructionObserver() { 113 MessageLoop::DestructionObserver::~DestructionObserver() {
114 } 114 }
115 115
116 //------------------------------------------------------------------------------ 116 //------------------------------------------------------------------------------
117 117
118 MessageLoop::MessageLoop(Type type) 118 MessageLoop::MessageLoop(Type type)
119 : type_(type), 119 : type_(type),
120 #if defined(OS_WIN)
120 pending_high_res_tasks_(0), 121 pending_high_res_tasks_(0),
121 in_high_res_mode_(false), 122 in_high_res_mode_(false),
123 #endif
122 nestable_tasks_allowed_(true), 124 nestable_tasks_allowed_(true),
123 #if defined(OS_WIN) 125 #if defined(OS_WIN)
124 os_modal_loop_(false), 126 os_modal_loop_(false),
125 #endif // OS_WIN 127 #endif // OS_WIN
126 message_histogram_(NULL), 128 message_histogram_(NULL),
127 run_loop_(NULL) { 129 run_loop_(NULL) {
128 Init(); 130 Init();
129 131
130 pump_ = CreateMessagePumpForType(type).Pass(); 132 pump_ = CreateMessagePumpForType(type).Pass();
131 } 133 }
132 134
133 MessageLoop::MessageLoop(scoped_ptr<MessagePump> pump) 135 MessageLoop::MessageLoop(scoped_ptr<MessagePump> pump)
134 : pump_(pump.Pass()), 136 : pump_(pump.Pass()),
135 type_(TYPE_CUSTOM), 137 type_(TYPE_CUSTOM),
138 #if defined(OS_WIN)
136 pending_high_res_tasks_(0), 139 pending_high_res_tasks_(0),
137 in_high_res_mode_(false), 140 in_high_res_mode_(false),
141 #endif
138 nestable_tasks_allowed_(true), 142 nestable_tasks_allowed_(true),
139 #if defined(OS_WIN) 143 #if defined(OS_WIN)
140 os_modal_loop_(false), 144 os_modal_loop_(false),
141 #endif // OS_WIN 145 #endif // OS_WIN
142 message_histogram_(NULL), 146 message_histogram_(NULL),
143 run_loop_(NULL) { 147 run_loop_(NULL) {
144 DCHECK(pump_.get()); 148 DCHECK(pump_.get());
145 Init(); 149 Init();
146 } 150 }
147 151
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
415 PendingTask pending_task = deferred_non_nestable_work_queue_.front(); 419 PendingTask pending_task = deferred_non_nestable_work_queue_.front();
416 deferred_non_nestable_work_queue_.pop(); 420 deferred_non_nestable_work_queue_.pop();
417 421
418 RunTask(pending_task); 422 RunTask(pending_task);
419 return true; 423 return true;
420 } 424 }
421 425
422 void MessageLoop::RunTask(const PendingTask& pending_task) { 426 void MessageLoop::RunTask(const PendingTask& pending_task) {
423 DCHECK(nestable_tasks_allowed_); 427 DCHECK(nestable_tasks_allowed_);
424 428
429 #if defined(OS_WIN)
425 if (pending_task.is_high_res) { 430 if (pending_task.is_high_res) {
426 pending_high_res_tasks_--; 431 pending_high_res_tasks_--;
427 CHECK(pending_high_res_tasks_ >= 0); 432 CHECK_GE(pending_high_res_tasks_, 0);
428 } 433 }
434 #endif
435
429 // Execute the task and assume the worst: It is probably not reentrant. 436 // Execute the task and assume the worst: It is probably not reentrant.
430 nestable_tasks_allowed_ = false; 437 nestable_tasks_allowed_ = false;
431 438
432 HistogramEvent(kTaskRunEvent); 439 HistogramEvent(kTaskRunEvent);
433 440
434 FOR_EACH_OBSERVER(TaskObserver, task_observers_, 441 FOR_EACH_OBSERVER(TaskObserver, task_observers_,
435 WillProcessTask(pending_task)); 442 WillProcessTask(pending_task));
436 task_annotator_.RunTask( 443 task_annotator_.RunTask(
437 "MessageLoop::PostTask", "MessageLoop::RunTask", pending_task); 444 "MessageLoop::PostTask", "MessageLoop::RunTask", pending_task);
438 FOR_EACH_OBSERVER(TaskObserver, task_observers_, 445 FOR_EACH_OBSERVER(TaskObserver, task_observers_,
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
488 } 495 }
489 return did_work; 496 return did_work;
490 } 497 }
491 498
492 void MessageLoop::ReloadWorkQueue() { 499 void MessageLoop::ReloadWorkQueue() {
493 // We can improve performance of our loading tasks from the incoming queue to 500 // We can improve performance of our loading tasks from the incoming queue to
494 // |*work_queue| by waiting until the last minute (|*work_queue| is empty) to 501 // |*work_queue| by waiting until the last minute (|*work_queue| is empty) to
495 // load. That reduces the number of locks-per-task significantly when our 502 // load. That reduces the number of locks-per-task significantly when our
496 // queues get large. 503 // queues get large.
497 if (work_queue_.empty()) { 504 if (work_queue_.empty()) {
505 #if defined(OS_WIN)
498 pending_high_res_tasks_ += 506 pending_high_res_tasks_ +=
499 incoming_task_queue_->ReloadWorkQueue(&work_queue_); 507 incoming_task_queue_->ReloadWorkQueue(&work_queue_);
508 #else
509 incoming_task_queue_->ReloadWorkQueue(&work_queue_);
510 #endif
500 } 511 }
501 } 512 }
502 513
503 void MessageLoop::ScheduleWork() { 514 void MessageLoop::ScheduleWork() {
504 pump_->ScheduleWork(); 515 pump_->ScheduleWork();
505 } 516 }
506 517
507 //------------------------------------------------------------------------------ 518 //------------------------------------------------------------------------------
508 // Method and data for histogramming events and actions taken by each instance 519 // Method and data for histogramming events and actions taken by each instance
509 // on each thread. 520 // on each thread.
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 return ToPumpIO(pump_.get())->RegisterJobObject(job, handler); 696 return ToPumpIO(pump_.get())->RegisterJobObject(job, handler);
686 } 697 }
687 698
688 bool MessageLoopForIO::WaitForIOCompletion(DWORD timeout, IOHandler* filter) { 699 bool MessageLoopForIO::WaitForIOCompletion(DWORD timeout, IOHandler* filter) {
689 return ToPumpIO(pump_.get())->WaitForIOCompletion(timeout, filter); 700 return ToPumpIO(pump_.get())->WaitForIOCompletion(timeout, filter);
690 } 701 }
691 #elif defined(OS_POSIX) 702 #elif defined(OS_POSIX)
692 bool MessageLoopForIO::WatchFileDescriptor(int fd, 703 bool MessageLoopForIO::WatchFileDescriptor(int fd,
693 bool persistent, 704 bool persistent,
694 Mode mode, 705 Mode mode,
695 FileDescriptorWatcher *controller, 706 FileDescriptorWatcher* controller,
696 Watcher *delegate) { 707 Watcher* delegate) {
697 return ToPumpIO(pump_.get())->WatchFileDescriptor( 708 return ToPumpIO(pump_.get())->WatchFileDescriptor(
698 fd, 709 fd,
699 persistent, 710 persistent,
700 mode, 711 mode,
701 controller, 712 controller,
702 delegate); 713 delegate);
703 } 714 }
704 #endif 715 #endif
705 716
706 #endif // !defined(OS_NACL_SFI) 717 #endif // !defined(OS_NACL_SFI)
707 718
708 } // namespace base 719 } // namespace base
OLDNEW
« no previous file with comments | « base/message_loop/message_loop.h ('k') | base/process/process_metrics.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698