| Index: media/midi/midi_manager_android.h
|
| diff --git a/media/midi/midi_manager_android.h b/media/midi/midi_manager_android.h
|
| index 4269d5d8526d943b98a03d8ff7b4e3aac0bd56fb..8da77510c9a45d6d0fdae1baaad2667f5460b38d 100644
|
| --- a/media/midi/midi_manager_android.h
|
| +++ b/media/midi/midi_manager_android.h
|
| @@ -15,6 +15,7 @@
|
| #include "base/android/scoped_java_ref.h"
|
| #include "base/containers/hash_tables.h"
|
| #include "base/memory/scoped_vector.h"
|
| +#include "base/synchronization/lock.h"
|
| #include "base/time/time.h"
|
| #include "media/midi/midi_input_port_android.h"
|
| #include "media/midi/midi_manager.h"
|
| @@ -36,6 +37,7 @@ class MidiManagerAndroid final : public MidiManager,
|
|
|
| // MidiManager implementation.
|
| void StartInitialization() override;
|
| + void Finalize() override;
|
| void DispatchSendMidiData(MidiManagerClient* client,
|
| uint32_t port_index,
|
| const std::vector<uint8_t>& data,
|
| @@ -81,7 +83,11 @@ class MidiManagerAndroid final : public MidiManager,
|
| base::hash_map<MidiOutputPortAndroid*, size_t> output_port_to_index_;
|
|
|
| base::android::ScopedJavaGlobalRef<jobject> raw_manager_;
|
| - std::unique_ptr<MidiScheduler> scheduler_;
|
| +
|
| + // Lock to ensure the MidiScheduler is being destructed only once in
|
| + // Finalize() on Chrome_IOThread.
|
| + base::Lock scheduler_lock_;
|
| + std::unique_ptr<MidiScheduler> scheduler_; // GUARDED_BY(scheduler_lock_)
|
| };
|
|
|
| } // namespace midi
|
|
|