diff options
author | jbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-27 00:18:57 +0000 |
---|---|---|
committer | jbates@chromium.org <jbates@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-27 00:18:57 +0000 |
commit | df9076ace1150780d9f696942f1aa377f3ffad9a (patch) | |
tree | 44426a38c6f222699f028a4d2a02e4f6095c35f5 /media/audio/audio_input_controller.h | |
parent | 43866cd42bd433961d3b631ebbd9afe2ae85699f (diff) | |
download | chromium_src-df9076ace1150780d9f696942f1aa377f3ffad9a.zip chromium_src-df9076ace1150780d9f696942f1aa377f3ffad9a.tar.gz chromium_src-df9076ace1150780d9f696942f1aa377f3ffad9a.tar.bz2 |
Revert 129018 - Revert 128993 - Refactor BaseTimer to avoid spamming the MessageLoop with orphaned tasks.
This change maintains the same API promises*, but instead of orphaning tasks when they are stopped, the BaseTimer_Helper class holds on to the task until either (1) it expires or (2) the user requests a delay that would arrive earlier than the pending task. If the user requests a longer delay than the pending task, a followup task will be posted when the pending task fires to span the remaining time.
* The one change of usage is related to threading. The threading requirements are now more strict. It is not allowed to destruct a timer on a different thread than the one used to post tasks. A thread ID DCHECK is now in place that will help catch misuse. Some existing instances are changed as part of this CL.
A side effect of this change is that the BaseTimer and DelayTimer are simplified to use features of BaseTimer_Helper (which is now called Timer).
As suggested in timer.h, I ran the disabled TimerTest tests from linux, and they pass consistently. I also added some new tests to verify correct run states.
BUG=117451,103667,119714,119750
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=128412
Reverted: http://src.chromium.org/viewvc/chrome?view=rev&revision=128506
Review URL: https://chromiumcodereview.appspot.com/9655006
TBR=jbates@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9791009
TBR=aa@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9860014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129062 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/audio/audio_input_controller.h')
-rw-r--r-- | media/audio/audio_input_controller.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/media/audio/audio_input_controller.h b/media/audio/audio_input_controller.h index 88cfb80..feeb895 100644 --- a/media/audio/audio_input_controller.h +++ b/media/audio/audio_input_controller.h @@ -144,7 +144,7 @@ class MEDIA_EXPORT AudioInputController SyncWriter* sync_writer); // Starts recording using the created audio input stream. - // This method is called on the audio thread. + // This method is called on the creator thread. virtual void Record(); // Closes the audio input stream. The state is changed and the resources @@ -215,7 +215,7 @@ class MEDIA_EXPORT AudioInputController // when an audio input device is unplugged whilst recording on Windows. // See http://crbug.com/79936 for details. // This member is only touched by the creating thread. - base::DelayTimer<AudioInputController> no_data_timer_; + scoped_ptr<base::DelayTimer<AudioInputController> > no_data_timer_; // |state_| is written on the audio thread and is read on the hardware audio // thread. These operations need to be locked. But lock is not required for |