Index: message_loop.cc =================================================================== --- message_loop.cc (revision 110703) +++ message_loop.cc (working copy) @@ -404,9 +404,13 @@ } void MessageLoop::AssertIdle() const { + DCHECK(IsIdle()); +} + +bool MessageLoop::IsIdle() const { // We only check |incoming_queue_|, since we don't want to lock |work_queue_|. base::AutoLock lock(incoming_queue_lock_); - DCHECK(incoming_queue_.empty()); + return incoming_queue_.empty(); } bool MessageLoop::is_running() const { Index: message_loop.h =================================================================== --- message_loop.h (revision 110703) +++ message_loop.h (working copy) @@ -363,6 +363,9 @@ // Asserts that the MessageLoop is "idle". void AssertIdle() const; + // Returns true if the MessageLoop is "idle". + bool IsIdle() const; + #if defined(OS_WIN) void set_os_modal_loop(bool os_modal_loop) { os_modal_loop_ = os_modal_loop;