| 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_;
|
| };
|
|
|
|
|