Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(536)

Side by Side Diff: net/base/address_tracker_linux.cc

Issue 2695593009: Use the location where FileDescriptorWatcher is created to track the libevent handlers (Closed)
Patch Set: fix mac. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « mojo/edk/system/channel_posix.cc ('k') | net/dns/notify_watcher_mac.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/base/address_tracker_linux.h" 5 #include "net/base/address_tracker_linux.h"
6 6
7 #include <errno.h> 7 #include <errno.h>
8 #include <linux/if.h> 8 #include <linux/if.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 #include <sys/ioctl.h> 10 #include <sys/ioctl.h>
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 strncpy(buf, ifr.ifr_name, IFNAMSIZ - 1); 109 strncpy(buf, ifr.ifr_name, IFNAMSIZ - 1);
110 return buf; 110 return buf;
111 } 111 }
112 112
113 AddressTrackerLinux::AddressTrackerLinux() 113 AddressTrackerLinux::AddressTrackerLinux()
114 : get_interface_name_(GetInterfaceName), 114 : get_interface_name_(GetInterfaceName),
115 address_callback_(base::Bind(&base::DoNothing)), 115 address_callback_(base::Bind(&base::DoNothing)),
116 link_callback_(base::Bind(&base::DoNothing)), 116 link_callback_(base::Bind(&base::DoNothing)),
117 tunnel_callback_(base::Bind(&base::DoNothing)), 117 tunnel_callback_(base::Bind(&base::DoNothing)),
118 netlink_fd_(-1), 118 netlink_fd_(-1),
119 watcher_(FROM_HERE),
119 ignored_interfaces_(), 120 ignored_interfaces_(),
120 connection_type_initialized_(false), 121 connection_type_initialized_(false),
121 connection_type_initialized_cv_(&connection_type_lock_), 122 connection_type_initialized_cv_(&connection_type_lock_),
122 current_connection_type_(NetworkChangeNotifier::CONNECTION_NONE), 123 current_connection_type_(NetworkChangeNotifier::CONNECTION_NONE),
123 tracking_(false), 124 tracking_(false),
124 threads_waiting_for_connection_type_initialization_(0) {} 125 threads_waiting_for_connection_type_initialization_(0) {}
125 126
126 AddressTrackerLinux::AddressTrackerLinux( 127 AddressTrackerLinux::AddressTrackerLinux(
127 const base::Closure& address_callback, 128 const base::Closure& address_callback,
128 const base::Closure& link_callback, 129 const base::Closure& link_callback,
129 const base::Closure& tunnel_callback, 130 const base::Closure& tunnel_callback,
130 const std::unordered_set<std::string>& ignored_interfaces) 131 const std::unordered_set<std::string>& ignored_interfaces)
131 : get_interface_name_(GetInterfaceName), 132 : get_interface_name_(GetInterfaceName),
132 address_callback_(address_callback), 133 address_callback_(address_callback),
133 link_callback_(link_callback), 134 link_callback_(link_callback),
134 tunnel_callback_(tunnel_callback), 135 tunnel_callback_(tunnel_callback),
135 netlink_fd_(-1), 136 netlink_fd_(-1),
137 watcher_(FROM_HERE),
136 ignored_interfaces_(ignored_interfaces), 138 ignored_interfaces_(ignored_interfaces),
137 connection_type_initialized_(false), 139 connection_type_initialized_(false),
138 connection_type_initialized_cv_(&connection_type_lock_), 140 connection_type_initialized_cv_(&connection_type_lock_),
139 current_connection_type_(NetworkChangeNotifier::CONNECTION_NONE), 141 current_connection_type_(NetworkChangeNotifier::CONNECTION_NONE),
140 tracking_(true), 142 tracking_(true),
141 threads_waiting_for_connection_type_initialization_(0) { 143 threads_waiting_for_connection_type_initialization_(0) {
142 DCHECK(!address_callback.is_null()); 144 DCHECK(!address_callback.is_null());
143 DCHECK(!link_callback.is_null()); 145 DCHECK(!link_callback.is_null());
144 } 146 }
145 147
(...skipping 344 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 492
491 AddressTrackerLinux::AddressTrackerAutoLock::~AddressTrackerAutoLock() { 493 AddressTrackerLinux::AddressTrackerAutoLock::~AddressTrackerAutoLock() {
492 if (tracker_.tracking_) { 494 if (tracker_.tracking_) {
493 lock_.AssertAcquired(); 495 lock_.AssertAcquired();
494 lock_.Release(); 496 lock_.Release();
495 } 497 }
496 } 498 }
497 499
498 } // namespace internal 500 } // namespace internal
499 } // namespace net 501 } // namespace net
OLDNEW
« no previous file with comments | « mojo/edk/system/channel_posix.cc ('k') | net/dns/notify_watcher_mac.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698