During shutdown delete any pending tasks if running under Valgrind.
BUG=10755
Review URL: http://codereview.chromium.org/115328
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16060 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/base/message_loop.cc b/base/message_loop.cc
index 764a963..4f9dc0be 100644
--- a/base/message_loop.cc
+++ b/base/message_loop.cc
@@ -18,6 +18,7 @@
#endif
#if defined(OS_POSIX)
#include "base/message_pump_libevent.h"
+#include "base/third_party/valgrind/valgrind.h"
#endif
#if defined(OS_LINUX)
#include "base/message_pump_glib.h"
@@ -365,10 +366,16 @@
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.
+ // Until it is totally safe, just do it when running Purify or
+ // Valgrind.
+#if defined(OS_WIN)
#ifdef PURIFY
delete pending_task.task;
#endif // PURIFY
+#elif defined(OS_POSIX)
+ if (RUNNING_ON_VALGRIND)
+ delete pending_task.task;
+#endif // defined(OS_POSIX)
}
}
did_work |= !deferred_non_nestable_work_queue_.empty();