| 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);
|
| }
|
|
|