Index: base/task_scheduler/scheduler_worker.cc |
diff --git a/base/task_scheduler/scheduler_worker.cc b/base/task_scheduler/scheduler_worker.cc |
index 3e77436b984aaf9d5ac2653979ed67d1770cf8de..3f371887d511454e648054c7bf98d3255ee3ce20 100644 |
--- a/base/task_scheduler/scheduler_worker.cc |
+++ b/base/task_scheduler/scheduler_worker.cc |
@@ -67,7 +67,6 @@ class SchedulerWorker::Thread : public PlatformThread::Delegate { |
if (outer_->delegate_->CanDetach(outer_.get())) { |
detached_thread = outer_->DetachThreadObject(DetachNotify::DELEGATE); |
if (detached_thread) { |
- outer_ = nullptr; |
DCHECK_EQ(detached_thread.get(), this); |
PlatformThread::Detach(thread_handle_); |
break; |
@@ -119,6 +118,8 @@ class SchedulerWorker::Thread : public PlatformThread::Delegate { |
// nullptr. JoinForTesting() cleans up if we get nullptr. |
if (!detached_thread) |
detached_thread = outer_->DetachThreadObject(DetachNotify::SILENT); |
+ |
+ outer_->delegate_->OnMainExit(); |
} |
void Join() { PlatformThread::Join(thread_handle_); } |