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

Side by Side Diff: base/synchronization/waitable_event_watcher_posix.cc

Issue 1815363002: Add RetainedRef uses where needed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 | « base/deferred_sequenced_task_runner_unittest.cc ('k') | base/task/cancelable_task_tracker.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 "base/synchronization/waitable_event_watcher.h" 5 #include "base/synchronization/waitable_event_watcher.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/single_thread_task_runner.h" 10 #include "base/single_thread_task_runner.h"
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 message_loop_ = NULL; 138 message_loop_ = NULL;
139 } 139 }
140 140
141 cancel_flag_ = NULL; 141 cancel_flag_ = NULL;
142 } 142 }
143 143
144 DCHECK(!cancel_flag_.get()) << "StartWatching called while still watching"; 144 DCHECK(!cancel_flag_.get()) << "StartWatching called while still watching";
145 145
146 cancel_flag_ = new Flag; 146 cancel_flag_ = new Flag;
147 callback_ = callback; 147 callback_ = callback;
148 internal_callback_ = 148 internal_callback_ = base::Bind(
149 base::Bind(&AsyncCallbackHelper, cancel_flag_, callback_, event); 149 &AsyncCallbackHelper, base::RetainedRef(cancel_flag_), callback_, event);
150 WaitableEvent::WaitableEventKernel* kernel = event->kernel_.get(); 150 WaitableEvent::WaitableEventKernel* kernel = event->kernel_.get();
151 151
152 AutoLock locked(kernel->lock_); 152 AutoLock locked(kernel->lock_);
153 153
154 event_ = event; 154 event_ = event;
155 155
156 if (kernel->signaled_) { 156 if (kernel->signaled_) {
157 if (!kernel->manual_reset_) 157 if (!kernel->manual_reset_)
158 kernel->signaled_ = false; 158 kernel->signaled_ = false;
159 159
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 // ----------------------------------------------------------------------------- 261 // -----------------------------------------------------------------------------
262 // This is called when the MessageLoop which the callback will be run it is 262 // This is called when the MessageLoop which the callback will be run it is
263 // deleted. We need to cancel the callback as if we had been deleted, but we 263 // deleted. We need to cancel the callback as if we had been deleted, but we
264 // will still be deleted at some point in the future. 264 // will still be deleted at some point in the future.
265 // ----------------------------------------------------------------------------- 265 // -----------------------------------------------------------------------------
266 void WaitableEventWatcher::WillDestroyCurrentMessageLoop() { 266 void WaitableEventWatcher::WillDestroyCurrentMessageLoop() {
267 StopWatching(); 267 StopWatching();
268 } 268 }
269 269
270 } // namespace base 270 } // namespace base
OLDNEW
« no previous file with comments | « base/deferred_sequenced_task_runner_unittest.cc ('k') | base/task/cancelable_task_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698