Chromium Code Reviews| Index: base/sequenced_task_runner.h |
| diff --git a/base/sequenced_task_runner.h b/base/sequenced_task_runner.h |
| index 6bb3f2b8717b0bac60c64fa8c7bb6525eec01a44..0bedf2e1b9251190b09dd3a409a4db4689f3e81c 100644 |
| --- a/base/sequenced_task_runner.h |
| +++ b/base/sequenced_task_runner.h |
| @@ -154,6 +154,24 @@ class BASE_EXPORT SequencedTaskRunner : public TaskRunner { |
| const void* object); |
| }; |
| +struct BASE_EXPORT OnTaskRunnerDeleter { |
| + explicit OnTaskRunnerDeleter(scoped_refptr<SequencedTaskRunner> task_runner); |
| + ~OnTaskRunnerDeleter(); |
| + |
| + OnTaskRunnerDeleter(OnTaskRunnerDeleter&&); |
| + OnTaskRunnerDeleter& operator=(OnTaskRunnerDeleter&&); |
| + |
| + template <typename T> |
| + void operator()(const T* ptr) { |
| + if (task_runner_->RunsTasksOnCurrentThread()) |
| + delete ptr; |
| + else if (ptr) |
| + task_runner_->DeleteSoon(FROM_HERE, ptr); |
| + } |
| + |
| + scoped_refptr<SequencedTaskRunner> task_runner_; |
| +}; |
|
dcheng
2016/07/22 07:29:00
Do you anticipate this being used in a bunch of ot
tzik
2016/07/22 08:14:53
Yes. I saw several places that hold an object on a
|
| + |
| } // namespace base |
| #endif // BASE_SEQUENCED_TASK_RUNNER_H_ |