Made MessagePump a non-thread safe class.
This CL makes MessagePump a non-thread safe class to make sure thread-bound resources (such as the UI window used for pumping messages on Windows) are freed on the correct thread.
Handling of incoming tasks and synchronization between different threads was moved out to a separate class - IncomingTaskQueue reducing the number of locks to be taken while posting a task to one. Posting tasks via both MessageLoop and MessageLoopProxyImpl is now routed via IncomingTaskQueue.
TBR all reviewers from https://chromiumcodereview.appspot.com/17567007/ because this is a re-land of it with a mechanical fix (adding a missing header).
TBR=rsesek@chromium.org,darin@chromium.org,thakis@chromium.org,rvargas@chromium.org,dalecurtis@chromium.org
BUG=241939
Review URL: https://codereview.chromium.org/19661004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212987 0039d316-1c4b-4281-b951-d872f2087c98
CrOS-Libchrome-Original-Commit: 54aa4f1ad7293be94fc044ee2f8adcffe729986d
diff --git a/base/base.gypi b/base/base.gypi
index 19fdcb9..02abd4b 100644
--- a/base/base.gypi
+++ b/base/base.gypi
@@ -300,6 +300,8 @@
'memory/singleton.h',
'memory/weak_ptr.cc',
'memory/weak_ptr.h',
+ 'message_loop/incoming_task_queue.cc',
+ 'message_loop/incoming_task_queue.h',
'message_loop/message_loop.cc',
'message_loop/message_loop.h',
'message_loop/message_loop_proxy.cc',