Index: webrtc/base/fakenetwork.h |
diff --git a/webrtc/base/fakenetwork.h b/webrtc/base/fakenetwork.h |
index 60773b4099dc9e5bafedb98533c16177385f595e..e586a267db1c0353fd737683c5bf4e827939e524 100644 |
--- a/webrtc/base/fakenetwork.h |
+++ b/webrtc/base/fakenetwork.h |
@@ -32,9 +32,8 @@ class FakeNetworkManager : public NetworkManagerBase, |
FakeNetworkManager() |
: thread_(Thread::Current()), |
next_index_(0), |
- started_(false), |
- sent_first_update_(false) { |
- } |
+ start_count_(0), |
+ sent_first_update_(false) {} |
typedef std::vector<SocketAddress> IfaceList; |
@@ -58,20 +57,18 @@ class FakeNetworkManager : public NetworkManagerBase, |
} |
virtual void StartUpdating() { |
- if (started_) { |
+ if (start_count_ == 0) { |
+ ++start_count_; |
+ sent_first_update_ = false; |
+ thread_->Post(this); |
+ } else { |
+ ++start_count_; |
if (sent_first_update_) |
SignalNetworksChanged(); |
- return; |
} |
- |
- started_ = true; |
- sent_first_update_ = false; |
- thread_->Post(this); |
} |
- virtual void StopUpdating() { |
- started_ = false; |
- } |
+ virtual void StopUpdating() { --start_count_; } |
// MessageHandler interface. |
virtual void OnMessage(Message* msg) { |
@@ -80,7 +77,7 @@ class FakeNetworkManager : public NetworkManagerBase, |
private: |
void DoUpdateNetworks() { |
- if (!started_) |
+ if (start_count_ == 0) |
return; |
std::vector<Network*> networks; |
for (IfaceList::iterator it = ifaces_.begin(); |
@@ -110,7 +107,7 @@ class FakeNetworkManager : public NetworkManagerBase, |
Thread* thread_; |
IfaceList ifaces_; |
int next_index_; |
- bool started_; |
+ int start_count_; |
bool sent_first_update_; |
}; |