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

Side by Side Diff: third_party/WebKit/Source/platform/network/NetworkStateNotifier.cpp

Issue 2959613002: Rename TaskRunner::RunsTasksOnCurrentThread() in //third_party (Closed)
Patch Set: Remove comments Created 3 years, 5 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 ObserverType type, 211 ObserverType type,
212 RefPtr<WebTaskRunner> task_runner, 212 RefPtr<WebTaskRunner> task_runner,
213 const NetworkState& state) { 213 const NetworkState& state) {
214 ObserverList* observer_list = LockAndFindObserverList(*map, task_runner); 214 ObserverList* observer_list = LockAndFindObserverList(*map, task_runner);
215 215
216 // The context could have been removed before the notification task got to 216 // The context could have been removed before the notification task got to
217 // run. 217 // run.
218 if (!observer_list) 218 if (!observer_list)
219 return; 219 return;
220 220
221 DCHECK(task_runner->RunsTasksOnCurrentThread()); 221 DCHECK(task_runner->RunsTasksInCurrentSequence());
222 222
223 observer_list->iterating = true; 223 observer_list->iterating = true;
224 224
225 for (size_t i = 0; i < observer_list->observers.size(); ++i) { 225 for (size_t i = 0; i < observer_list->observers.size(); ++i) {
226 // Observers removed during iteration are zeroed out, skip them. 226 // Observers removed during iteration are zeroed out, skip them.
227 if (!observer_list->observers[i]) 227 if (!observer_list->observers[i])
228 continue; 228 continue;
229 switch (type) { 229 switch (type) {
230 case ObserverType::ONLINE_STATE: 230 case ObserverType::ONLINE_STATE:
231 observer_list->observers[i]->OnLineStateChange(state.on_line); 231 observer_list->observers[i]->OnLineStateChange(state.on_line);
(...skipping 10 matching lines...) Expand all
242 242
243 observer_list->iterating = false; 243 observer_list->iterating = false;
244 244
245 if (!observer_list->zeroed_observers.IsEmpty()) 245 if (!observer_list->zeroed_observers.IsEmpty())
246 CollectZeroedObservers(*map, observer_list, std::move(task_runner)); 246 CollectZeroedObservers(*map, observer_list, std::move(task_runner));
247 } 247 }
248 248
249 void NetworkStateNotifier::AddObserver(ObserverListMap& map, 249 void NetworkStateNotifier::AddObserver(ObserverListMap& map,
250 NetworkStateObserver* observer, 250 NetworkStateObserver* observer,
251 PassRefPtr<WebTaskRunner> task_runner) { 251 PassRefPtr<WebTaskRunner> task_runner) {
252 DCHECK(task_runner->RunsTasksOnCurrentThread()); 252 DCHECK(task_runner->RunsTasksInCurrentSequence());
253 DCHECK(observer); 253 DCHECK(observer);
254 254
255 MutexLocker locker(mutex_); 255 MutexLocker locker(mutex_);
256 ObserverListMap::AddResult result = 256 ObserverListMap::AddResult result =
257 map.insert(std::move(task_runner), nullptr); 257 map.insert(std::move(task_runner), nullptr);
258 if (result.is_new_entry) 258 if (result.is_new_entry)
259 result.stored_value->value = WTF::MakeUnique<ObserverList>(); 259 result.stored_value->value = WTF::MakeUnique<ObserverList>();
260 260
261 DCHECK(result.stored_value->value->observers.Find(observer) == kNotFound); 261 DCHECK(result.stored_value->value->observers.Find(observer) == kNotFound);
262 result.stored_value->value->observers.push_back(observer); 262 result.stored_value->value->observers.push_back(observer);
263 } 263 }
264 264
265 void NetworkStateNotifier::RemoveObserver(ObserverListMap& map, 265 void NetworkStateNotifier::RemoveObserver(ObserverListMap& map,
266 NetworkStateObserver* observer, 266 NetworkStateObserver* observer,
267 RefPtr<WebTaskRunner> task_runner) { 267 RefPtr<WebTaskRunner> task_runner) {
268 DCHECK(task_runner->RunsTasksOnCurrentThread()); 268 DCHECK(task_runner->RunsTasksInCurrentSequence());
269 DCHECK(observer); 269 DCHECK(observer);
270 270
271 ObserverList* observer_list = LockAndFindObserverList(map, task_runner); 271 ObserverList* observer_list = LockAndFindObserverList(map, task_runner);
272 if (!observer_list) 272 if (!observer_list)
273 return; 273 return;
274 274
275 Vector<NetworkStateObserver*>& observers = observer_list->observers; 275 Vector<NetworkStateObserver*>& observers = observer_list->observers;
276 size_t index = observers.Find(observer); 276 size_t index = observers.Find(observer);
277 if (index != kNotFound) { 277 if (index != kNotFound) {
278 observers[index] = 0; 278 observers[index] = 0;
(...skipping 10 matching lines...) Expand all
289 PassRefPtr<WebTaskRunner> task_runner) { 289 PassRefPtr<WebTaskRunner> task_runner) {
290 MutexLocker locker(mutex_); 290 MutexLocker locker(mutex_);
291 ObserverListMap::iterator it = map.find(task_runner); 291 ObserverListMap::iterator it = map.find(task_runner);
292 return it == map.end() ? nullptr : it->value.get(); 292 return it == map.end() ? nullptr : it->value.get();
293 } 293 }
294 294
295 void NetworkStateNotifier::CollectZeroedObservers( 295 void NetworkStateNotifier::CollectZeroedObservers(
296 ObserverListMap& map, 296 ObserverListMap& map,
297 ObserverList* list, 297 ObserverList* list,
298 PassRefPtr<WebTaskRunner> task_runner) { 298 PassRefPtr<WebTaskRunner> task_runner) {
299 DCHECK(task_runner->RunsTasksOnCurrentThread()); 299 DCHECK(task_runner->RunsTasksInCurrentSequence());
300 DCHECK(!list->iterating); 300 DCHECK(!list->iterating);
301 301
302 // If any observers were removed during the iteration they will have 302 // If any observers were removed during the iteration they will have
303 // 0 values, clean them up. 303 // 0 values, clean them up.
304 for (size_t i = 0; i < list->zeroed_observers.size(); ++i) 304 for (size_t i = 0; i < list->zeroed_observers.size(); ++i)
305 list->observers.erase(list->zeroed_observers[i]); 305 list->observers.erase(list->zeroed_observers[i]);
306 306
307 list->zeroed_observers.clear(); 307 list->zeroed_observers.clear();
308 308
309 if (list->observers.IsEmpty()) { 309 if (list->observers.IsEmpty()) {
310 MutexLocker locker(mutex_); 310 MutexLocker locker(mutex_);
311 map.erase(task_runner); // deletes list 311 map.erase(task_runner); // deletes list
312 } 312 }
313 } 313 }
314 314
315 } // namespace blink 315 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698