Chromium Code Reviews| Index: base/task_scheduler/task.cc |
| diff --git a/base/task_scheduler/task.cc b/base/task_scheduler/task.cc |
| index 8a589a202186dc2b3404c234e104a856ca57d8dd..5ba594b734d12565d434c4f8b44dcde41878e935 100644 |
| --- a/base/task_scheduler/task.cc |
| +++ b/base/task_scheduler/task.cc |
| @@ -15,7 +15,14 @@ Task::Task(const tracked_objects::Location& posted_from, |
| task, |
| delay.is_zero() ? TimeTicks() : TimeTicks::Now() + delay, |
| false), // Not nestable. |
| - traits(traits) {} |
| + traits(traits) { |
| + // Prevent a delayed BLOCK_SHUTDOWN task from blocking shutdown before being |
| + // scheduled by changing its shutdown behavior to SKIP_ON_SHUTDOWN. |
| + if (!delay.is_zero() && |
| + traits.shutdown_behavior() == TaskShutdownBehavior::BLOCK_SHUTDOWN) { |
| + this->traits.WithShutdownBehavior(TaskShutdownBehavior::SKIP_ON_SHUTDOWN); |
|
gab
2016/10/03 16:59:53
rm "this->" ?
To avoid naming conflict and make s
fdoray
2016/10/03 17:10:15
Done.
|
| + } |
| +} |
| Task::~Task() = default; |