Index: media/midi/midi_scheduler.cc |
diff --git a/media/midi/midi_scheduler.cc b/media/midi/midi_scheduler.cc |
index 4f6f68c2578c4373d4e1b9c2a6d312519d619d32..810b257d96d1880e66c61b5ab3747c7c66aeb082 100644 |
--- a/media/midi/midi_scheduler.cc |
+++ b/media/midi/midi_scheduler.cc |
@@ -8,7 +8,6 @@ |
#include "base/bind.h" |
#include "base/location.h" |
-#include "base/single_thread_task_runner.h" |
#include "base/threading/thread_task_runner_handle.h" |
#include "base/time/time.h" |
#include "media/midi/midi_manager.h" |
@@ -17,15 +16,17 @@ namespace media { |
namespace midi { |
MidiScheduler::MidiScheduler(MidiManager* manager) |
- : manager_(manager), |
- weak_factory_(this) { |
-} |
+ : manager_(manager), |
+ task_runner_(base::ThreadTaskRunnerHandle::Get()), |
+ weak_factory_(this) {} |
MidiScheduler::~MidiScheduler() { |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
} |
// TODO(crbug.com/467442): Use CancelableTaskTracker once it supports |
// DelayedTask. |
+// TODO(shaochuan): Unit tests to ensure thread safety. |
void MidiScheduler::PostSendDataTask(MidiManagerClient* client, |
size_t length, |
double timestamp, |
@@ -46,13 +47,13 @@ void MidiScheduler::PostSendDataTask(MidiManagerClient* client, |
timestamp * base::Time::kMicrosecondsPerSecond); |
delay = std::max(time_to_send - base::TimeTicks::Now(), base::TimeDelta()); |
} |
- base::ThreadTaskRunnerHandle::Get()->PostDelayedTask(FROM_HERE, weak_closure, |
- delay); |
+ task_runner_->PostDelayedTask(FROM_HERE, weak_closure, delay); |
} |
void MidiScheduler::InvokeClosure(MidiManagerClient* client, |
size_t length, |
const base::Closure& closure) { |
+ DCHECK(thread_checker_.CalledOnValidThread()); |
closure.Run(); |
manager_->AccumulateMidiBytesSent(client, length); |
} |