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

Unified Diff: base/message_loop.cc

Issue 2878074: Revert 54584 - Delete tasks unconditionally in MessageLoop::DeletePendingTask... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/message_loop.cc
===================================================================
--- base/message_loop.cc (revision 54696)
+++ base/message_loop.cc (working copy)
@@ -466,18 +466,37 @@
// tasks.
AddToDelayedWorkQueue(pending_task);
} else {
+ // TODO(darin): Delete all tasks once it is safe to do so.
+ // Until it is totally safe, just do it when running Purify or
+ // Valgrind.
+#if defined(PURIFY)
delete pending_task.task;
+#elif defined(OS_POSIX)
+ if (RUNNING_ON_VALGRIND)
+ delete pending_task.task;
+#endif // defined(OS_POSIX)
}
}
did_work |= !deferred_non_nestable_work_queue_.empty();
while (!deferred_non_nestable_work_queue_.empty()) {
- delete deferred_non_nestable_work_queue_.front().task;
+ // TODO(darin): Delete all tasks once it is safe to do so.
+ // Until it is totaly safe, only delete them under Purify and Valgrind.
+ Task* task = NULL;
+#if defined(PURIFY)
+ task = deferred_non_nestable_work_queue_.front().task;
+#elif defined(OS_POSIX)
+ if (RUNNING_ON_VALGRIND)
+ task = deferred_non_nestable_work_queue_.front().task;
+#endif
deferred_non_nestable_work_queue_.pop();
+ if (task)
+ delete task;
}
did_work |= !delayed_work_queue_.empty();
while (!delayed_work_queue_.empty()) {
- delete delayed_work_queue_.top().task;
+ Task* task = delayed_work_queue_.top().task;
delayed_work_queue_.pop();
+ delete task;
}
return did_work;
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698