Chromium Code Reviews| Index: media/audio/audio_manager_base.h |
| =================================================================== |
| --- media/audio/audio_manager_base.h (revision 113173) |
| +++ media/audio/audio_manager_base.h (working copy) |
| @@ -7,6 +7,7 @@ |
| #include <map> |
| +#include "base/atomic_ref_count.h" |
| #include "base/compiler_specific.h" |
| #include "base/threading/thread.h" |
| #include "media/audio/audio_manager.h" |
| @@ -23,8 +24,15 @@ |
| AudioManagerBase(); |
| +#ifndef NDEBUG |
| + // Overridden to make sure we don't accidentally get added reference counts on |
| + // the audio thread. The AudioManagerBase instance must always be deleted |
| + // from outside the audio thread. |
| + virtual void AddRef() const OVERRIDE; |
| + virtual void Release() const OVERRIDE; |
| +#endif |
| + |
| virtual void Init() OVERRIDE; |
| - virtual void Cleanup() OVERRIDE; |
| virtual MessageLoop* GetMessageLoop() OVERRIDE; |
| @@ -43,6 +51,7 @@ |
| void IncreaseActiveInputStreamCount(); |
| void DecreaseActiveInputStreamCount(); |
| + void Shutdown(); |
|
scherkus (not reviewing)
2011/12/09 22:47:30
docs?
also I looked through the patch but couldn'
tommi (sloooow) - chröme
2011/12/10 00:11:14
Added.
|
| protected: |
| virtual ~AudioManagerBase(); |
| @@ -51,25 +60,20 @@ |
| AudioParameters::Compare> |
| AudioOutputDispatchersMap; |
| - bool initialized() { return initialized_; } |
| + void ShutdownOnAudioThread(); |
| + bool initialized() { return audio_thread_.IsRunning(); } |
| + |
| // Thread used to interact with AudioOutputStreams created by this |
| // audio manger. |
| base::Thread audio_thread_; |
| - bool initialized_; |
| - |
| AudioOutputDispatchersMap output_dispatchers_; |
| // Counts the number of active input streams to find out if something else |
| // is currently recording in Chrome. |
| - int num_active_input_streams_; |
| + base::AtomicRefCount num_active_input_streams_; |
| - // Lock used to synchronize the access to num_active_input_streams_. |
| - // Do not use for anything else and try to avoid using other locks |
| - // in this code whenever possible. |
| - base::Lock active_input_streams_lock_; |
| - |
| DISALLOW_COPY_AND_ASSIGN(AudioManagerBase); |
| }; |