Index: webrtc/base/fakenetwork.h |
diff --git a/webrtc/base/fakenetwork.h b/webrtc/base/fakenetwork.h |
index 60773b4099dc9e5bafedb98533c16177385f595e..1656fcc536c16416775d6b6f4e7488a9fdee05f0 100644 |
--- a/webrtc/base/fakenetwork.h |
+++ b/webrtc/base/fakenetwork.h |
@@ -32,7 +32,7 @@ class FakeNetworkManager : public NetworkManagerBase, |
FakeNetworkManager() |
: thread_(Thread::Current()), |
next_index_(0), |
- started_(false), |
+ start_count_(0), |
sent_first_update_(false) { |
} |
@@ -58,19 +58,19 @@ 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; |
+ --start_count_; |
} |
// MessageHandler interface. |
@@ -80,7 +80,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 +110,7 @@ class FakeNetworkManager : public NetworkManagerBase, |
Thread* thread_; |
IfaceList ifaces_; |
int next_index_; |
- bool started_; |
+ int start_count_; |
bool sent_first_update_; |
}; |