| Index: base/trace_event/memory_dump_manager.cc
|
| diff --git a/base/trace_event/memory_dump_manager.cc b/base/trace_event/memory_dump_manager.cc
|
| index 096eaf88487828c43ca9748182282eeed73df80a..dd67c3155d99c73b07a26bc348eaabdbd7d3afd4 100644
|
| --- a/base/trace_event/memory_dump_manager.cc
|
| +++ b/base/trace_event/memory_dump_manager.cc
|
| @@ -277,6 +277,11 @@ void MemoryDumpManager::RegisterDumpProviderInternal(
|
| new MemoryDumpProviderInfo(mdp, name, std::move(task_runner), options,
|
| whitelisted_for_background_mode);
|
|
|
| + if (options.is_fast_polling_supported) {
|
| + DCHECK(!mdpinfo->task_runner) << "MemoryDumpProviders capable of fast "
|
| + "polling must NOT be thread bound.";
|
| + }
|
| +
|
| {
|
| AutoLock lock(lock_);
|
| bool already_registered = !dump_providers_.insert(mdpinfo).second;
|
| @@ -351,10 +356,7 @@ void MemoryDumpManager::UnregisterDumpProviderInternal(
|
| }
|
|
|
| if ((*mdp_iter)->options.is_fast_polling_supported && dump_thread_) {
|
| - DCHECK(take_mdp_ownership_and_delete_async)
|
| - << "MemoryDumpProviders capable of fast polling must NOT be thread "
|
| - "bound and hence must be destroyed using "
|
| - "UnregisterAndDeleteDumpProviderSoon()";
|
| + DCHECK(take_mdp_ownership_and_delete_async);
|
| dump_thread_->task_runner()->PostTask(
|
| FROM_HERE, Bind(&MemoryDumpManager::UnregisterPollingMDPOnDumpThread,
|
| Unretained(this), *mdp_iter));
|
| @@ -371,7 +373,6 @@ void MemoryDumpManager::UnregisterDumpProviderInternal(
|
|
|
| void MemoryDumpManager::RegisterPollingMDPOnDumpThread(
|
| scoped_refptr<MemoryDumpManager::MemoryDumpProviderInfo> mdpinfo) {
|
| - DCHECK(!mdpinfo->task_runner);
|
| AutoLock lock(lock_);
|
| dump_providers_for_polling_.insert(mdpinfo);
|
| }
|
|
|