| Index: webrtc/voice_engine/channel_manager.h
|
| diff --git a/webrtc/voice_engine/channel_manager.h b/webrtc/voice_engine/channel_manager.h
|
| index 81768e010f0c331c2a17d18e5c44379b86e29958..1670421a729b76ba6ec0835554e5ef384e3585be 100644
|
| --- a/webrtc/voice_engine/channel_manager.h
|
| +++ b/webrtc/voice_engine/channel_manager.h
|
| @@ -13,10 +13,10 @@
|
|
|
| #include <vector>
|
|
|
| +#include "webrtc/base/atomicops.h"
|
| #include "webrtc/base/constructormagic.h"
|
| #include "webrtc/base/scoped_ptr.h"
|
| #include "webrtc/call/rtc_event_log.h"
|
| -#include "webrtc/system_wrappers/interface/atomic32.h"
|
| #include "webrtc/system_wrappers/interface/critical_section_wrapper.h"
|
| #include "webrtc/typedefs.h"
|
|
|
| @@ -55,7 +55,10 @@ class ChannelOwner {
|
|
|
| Channel* channel() const { return channel_ref_->channel.get(); }
|
| bool IsValid() { return channel_ref_->channel.get() != NULL; }
|
| - int use_count() const { return channel_ref_->ref_count.Value(); }
|
| + int use_count() const {
|
| + return rtc::AtomicOps::AcquireLoad(&channel_ref_->ref_count);
|
| + }
|
| +
|
| private:
|
| // Shared instance of a Channel. Copying ChannelOwners increase the reference
|
| // count and destroying ChannelOwners decrease references. Channels are
|
| @@ -63,7 +66,7 @@ class ChannelOwner {
|
| struct ChannelRef {
|
| ChannelRef(Channel* channel);
|
| const rtc::scoped_ptr<Channel> channel;
|
| - Atomic32 ref_count;
|
| + volatile int ref_count;
|
| };
|
|
|
| ChannelRef* channel_ref_;
|
| @@ -121,7 +124,7 @@ class ChannelManager {
|
|
|
| uint32_t instance_id_;
|
|
|
| - Atomic32 last_channel_id_;
|
| + volatile int last_channel_id_;
|
|
|
| rtc::scoped_ptr<CriticalSectionWrapper> lock_;
|
| std::vector<ChannelOwner> channels_;
|
|
|