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

Side by Side Diff: base/task/cancelable_task_tracker.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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/task/cancelable_task_tracker.h" 5 #include "base/task/cancelable_task_tracker.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 // Will be deleted by |untrack_and_delete_flag| after Untrack(). 124 // Will be deleted by |untrack_and_delete_flag| after Untrack().
125 CancellationFlag* flag = new CancellationFlag(); 125 CancellationFlag* flag = new CancellationFlag();
126 126
127 Closure untrack_and_delete_flag = Bind( 127 Closure untrack_and_delete_flag = Bind(
128 &RunAndDeleteFlag, 128 &RunAndDeleteFlag,
129 Bind(&CancelableTaskTracker::Untrack, weak_factory_.GetWeakPtr(), id), 129 Bind(&CancelableTaskTracker::Untrack, weak_factory_.GetWeakPtr(), id),
130 flag); 130 flag);
131 131
132 // Will always run |untrack_and_delete_flag| on current MessageLoop. 132 // Will always run |untrack_and_delete_flag| on current MessageLoop.
133 base::ScopedClosureRunner* untrack_and_delete_flag_runner = 133 base::ScopedClosureRunner* untrack_and_delete_flag_runner =
134 new base::ScopedClosureRunner(Bind(&RunOrPostToTaskRunner, 134 new base::ScopedClosureRunner(
135 base::ThreadTaskRunnerHandle::Get(), 135 Bind(&RunOrPostToTaskRunner,
136 untrack_and_delete_flag)); 136 RetainedRef(base::ThreadTaskRunnerHandle::Get()),
137 untrack_and_delete_flag));
137 138
138 *is_canceled_cb = 139 *is_canceled_cb =
139 Bind(&IsCanceled, flag, base::Owned(untrack_and_delete_flag_runner)); 140 Bind(&IsCanceled, flag, base::Owned(untrack_and_delete_flag_runner));
140 141
141 Track(id, flag); 142 Track(id, flag);
142 return id; 143 return id;
143 } 144 }
144 145
145 void CancelableTaskTracker::TryCancel(TaskId id) { 146 void CancelableTaskTracker::TryCancel(TaskId id) {
146 DCHECK(thread_checker_.CalledOnValidThread()); 147 DCHECK(thread_checker_.CalledOnValidThread());
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 DCHECK(success); 182 DCHECK(success);
182 } 183 }
183 184
184 void CancelableTaskTracker::Untrack(TaskId id) { 185 void CancelableTaskTracker::Untrack(TaskId id) {
185 DCHECK(thread_checker_.CalledOnValidThread()); 186 DCHECK(thread_checker_.CalledOnValidThread());
186 size_t num = task_flags_.erase(id); 187 size_t num = task_flags_.erase(id);
187 DCHECK_EQ(1u, num); 188 DCHECK_EQ(1u, num);
188 } 189 }
189 190
190 } // namespace base 191 } // namespace base
OLDNEW
« no previous file with comments | « base/synchronization/waitable_event_watcher_posix.cc ('k') | base/test/launcher/test_launcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698