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

Side by Side Diff: chrome/browser/jankometer.cc

Issue 10392152: RefCounted types should not have public destructors, Linux fixes (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <limits> 5 #include <limits>
6 6
7 #include "chrome/browser/jankometer.h" 7 #include "chrome/browser/jankometer.h"
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 //------------------------------------------------------------------------------ 214 //------------------------------------------------------------------------------
215 class IOJankObserver : public base::RefCountedThreadSafe<IOJankObserver>, 215 class IOJankObserver : public base::RefCountedThreadSafe<IOJankObserver>,
216 public MessageLoopForIO::IOObserver, 216 public MessageLoopForIO::IOObserver,
217 public MessageLoop::TaskObserver { 217 public MessageLoop::TaskObserver {
218 public: 218 public:
219 IOJankObserver(const char* thread_name, 219 IOJankObserver(const char* thread_name,
220 TimeDelta excessive_duration, 220 TimeDelta excessive_duration,
221 bool watchdog_enable) 221 bool watchdog_enable)
222 : helper_(thread_name, excessive_duration, watchdog_enable) {} 222 : helper_(thread_name, excessive_duration, watchdog_enable) {}
223 223
224 ~IOJankObserver() {}
225
226 // Attaches the observer to the current thread's message loop. You can only 224 // Attaches the observer to the current thread's message loop. You can only
227 // attach to the current thread, so this function can be invoked on another 225 // attach to the current thread, so this function can be invoked on another
228 // thread to attach it. 226 // thread to attach it.
229 void AttachToCurrentThread() { 227 void AttachToCurrentThread() {
230 MessageLoop::current()->AddTaskObserver(this); 228 MessageLoop::current()->AddTaskObserver(this);
231 MessageLoopForIO::current()->AddIOObserver(this); 229 MessageLoopForIO::current()->AddIOObserver(this);
232 } 230 }
233 231
234 // Detaches the observer to the current thread's message loop. 232 // Detaches the observer to the current thread's message loop.
235 void DetachFromCurrentThread() { 233 void DetachFromCurrentThread() {
(...skipping 19 matching lines...) Expand all
255 helper_.StartProcessingTimers(queueing_time); 253 helper_.StartProcessingTimers(queueing_time);
256 } 254 }
257 255
258 virtual void DidProcessTask(base::TimeTicks time_posted) OVERRIDE { 256 virtual void DidProcessTask(base::TimeTicks time_posted) OVERRIDE {
259 helper_.EndProcessingTimers(); 257 helper_.EndProcessingTimers();
260 } 258 }
261 259
262 private: 260 private:
263 friend class base::RefCountedThreadSafe<IOJankObserver>; 261 friend class base::RefCountedThreadSafe<IOJankObserver>;
264 262
263 ~IOJankObserver() {}
264
265 JankObserverHelper helper_; 265 JankObserverHelper helper_;
266 266
267 DISALLOW_COPY_AND_ASSIGN(IOJankObserver); 267 DISALLOW_COPY_AND_ASSIGN(IOJankObserver);
268 }; 268 };
269 269
270 //------------------------------------------------------------------------------ 270 //------------------------------------------------------------------------------
271 class UIJankObserver : public base::RefCountedThreadSafe<UIJankObserver>, 271 class UIJankObserver : public base::RefCountedThreadSafe<UIJankObserver>,
272 public MessageLoop::TaskObserver, 272 public MessageLoop::TaskObserver,
273 public MessageLoopForUI::Observer { 273 public MessageLoopForUI::Observer {
274 public: 274 public:
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 delete ui_observer; 419 delete ui_observer;
420 ui_observer = NULL; 420 ui_observer = NULL;
421 } 421 }
422 if (io_observer) { 422 if (io_observer) {
423 // IO thread can't be running when we remove observers. 423 // IO thread can't be running when we remove observers.
424 DCHECK((!g_browser_process) || !(g_browser_process->io_thread())); 424 DCHECK((!g_browser_process) || !(g_browser_process->io_thread()));
425 delete io_observer; 425 delete io_observer;
426 io_observer = NULL; 426 io_observer = NULL;
427 } 427 }
428 } 428 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698