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();