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

Side by Side Diff: base/message_pump_default.cc

Issue 3884001: Switch to using TimeTicks rather than Time in message loops (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 1 month 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
« no previous file with comments | « base/message_pump_default.h ('k') | base/message_pump_glib.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 (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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_pump_default.h" 5 #include "base/message_pump_default.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/mac/scoped_nsautorelease_pool.h" 8 #include "base/mac/scoped_nsautorelease_pool.h"
9 9
10 namespace base { 10 namespace base {
(...skipping 23 matching lines...) Expand all
34 did_work = delegate->DoIdleWork(); 34 did_work = delegate->DoIdleWork();
35 if (!keep_running_) 35 if (!keep_running_)
36 break; 36 break;
37 37
38 if (did_work) 38 if (did_work)
39 continue; 39 continue;
40 40
41 if (delayed_work_time_.is_null()) { 41 if (delayed_work_time_.is_null()) {
42 event_.Wait(); 42 event_.Wait();
43 } else { 43 } else {
44 TimeDelta delay = delayed_work_time_ - Time::Now(); 44 TimeDelta delay = delayed_work_time_ - TimeTicks::Now();
45 if (delay > TimeDelta()) { 45 if (delay > TimeDelta()) {
46 event_.TimedWait(delay); 46 event_.TimedWait(delay);
47 } else { 47 } else {
48 // It looks like delayed_work_time_ indicates a time in the past, so we 48 // It looks like delayed_work_time_ indicates a time in the past, so we
49 // need to call DoDelayedWork now. 49 // need to call DoDelayedWork now.
50 delayed_work_time_ = Time(); 50 delayed_work_time_ = TimeTicks();
51 } 51 }
52 } 52 }
53 // Since event_ is auto-reset, we don't need to do anything special here 53 // Since event_ is auto-reset, we don't need to do anything special here
54 // other than service each delegate method. 54 // other than service each delegate method.
55 } 55 }
56 56
57 keep_running_ = true; 57 keep_running_ = true;
58 } 58 }
59 59
60 void MessagePumpDefault::Quit() { 60 void MessagePumpDefault::Quit() {
61 keep_running_ = false; 61 keep_running_ = false;
62 } 62 }
63 63
64 void MessagePumpDefault::ScheduleWork() { 64 void MessagePumpDefault::ScheduleWork() {
65 // Since this can be called on any thread, we need to ensure that our Run 65 // Since this can be called on any thread, we need to ensure that our Run
66 // loop wakes up. 66 // loop wakes up.
67 event_.Signal(); 67 event_.Signal();
68 } 68 }
69 69
70 void MessagePumpDefault::ScheduleDelayedWork(const Time& delayed_work_time) { 70 void MessagePumpDefault::ScheduleDelayedWork(
71 const TimeTicks& delayed_work_time) {
71 // We know that we can't be blocked on Wait right now since this method can 72 // We know that we can't be blocked on Wait right now since this method can
72 // only be called on the same thread as Run, so we only need to update our 73 // only be called on the same thread as Run, so we only need to update our
73 // record of how long to sleep when we do sleep. 74 // record of how long to sleep when we do sleep.
74 delayed_work_time_ = delayed_work_time; 75 delayed_work_time_ = delayed_work_time;
75 } 76 }
76 77
77 } // namespace base 78 } // namespace base
OLDNEW
« no previous file with comments | « base/message_pump_default.h ('k') | base/message_pump_glib.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698