Index: base/message_loop.cc |
diff --git a/base/message_loop.cc b/base/message_loop.cc |
index 764a96332560529138ca1bdcaa37a9f97f95cb39..4f9dc0be39683cd0a2991246052acd3f2f2de33c 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 @@ bool MessageLoop::DeletePendingTasks() { |
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(); |