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

Unified Diff: media/audio/mac/audio_manager_mac.cc

Issue 2784433002: Ensures that audio tasks cannot run after AudioManager is deleted. (Closed)
Patch Set: fixes content_browsertests and content_unittests Created 3 years, 9 months 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 side-by-side diff with in-line comments
Download patch
Index: media/audio/mac/audio_manager_mac.cc
diff --git a/media/audio/mac/audio_manager_mac.cc b/media/audio/mac/audio_manager_mac.cc
index cb2ac1f1f2f7b8fce551096508bcafee56560f7c..86836e49bb2a5deb95af014a3a17485c18ae14de 100644
--- a/media/audio/mac/audio_manager_mac.cc
+++ b/media/audio/mac/audio_manager_mac.cc
@@ -418,13 +418,14 @@ AudioManagerMac::AudioManagerMac(
base::Unretained(this)));
}
-AudioManagerMac::~AudioManagerMac() {
- DCHECK(GetTaskRunner()->BelongsToCurrentThread());
+AudioManagerMac::~AudioManagerMac() = default;
+
+void AudioManagerMac::Shutdown() {
// We are now in shutdown mode. This flag disables MaybeChangeBufferSize()
// and IncreaseIOBufferSizeIfPossible() which both touches native Core Audio
// APIs and they can fail and disrupt tests during shutdown.
in_shutdown_ = true;
- Shutdown();
+ AudioManagerBase::Shutdown();
}
bool AudioManagerMac::HasAudioOutputDevices() {
@@ -1165,13 +1166,12 @@ void AudioManagerMac::ReleaseInputStream(AudioInputStream* stream) {
AudioManagerBase::ReleaseInputStream(stream);
}
-ScopedAudioManagerPtr CreateAudioManager(
+std::unique_ptr<AudioManager> CreateAudioManager(
scoped_refptr<base::SingleThreadTaskRunner> task_runner,
scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner,
AudioLogFactory* audio_log_factory) {
- return ScopedAudioManagerPtr(
- new AudioManagerMac(std::move(task_runner), std::move(worker_task_runner),
- audio_log_factory));
+ return base::MakeUnique<AudioManagerMac>(
+ std::move(task_runner), std::move(worker_task_runner), audio_log_factory);
}
} // namespace media

Powered by Google App Engine
This is Rietveld 408576698