Chromium Code Reviews| Index: webkit/glue/webthread_impl.cc |
| diff --git a/webkit/glue/webthread_impl.cc b/webkit/glue/webthread_impl.cc |
| index 439137fb380d5a34d2a3496aab6e4eeeab27ac69..170746f3ef7fe637ce4ae119614c78e5adcc10fb 100644 |
| --- a/webkit/glue/webthread_impl.cc |
| +++ b/webkit/glue/webthread_impl.cc |
| @@ -70,6 +70,18 @@ void WebThreadImpl::postDelayedTask( |
| base::TimeDelta::FromMilliseconds(delay_ms)); |
| } |
| +void WebThreadImpl::enterRunLoop() { |
| + CHECK(IsCurrentThread()); |
| + CHECK(!thread_->message_loop()->is_running()); // We don't support nesting. |
| + thread_->message_loop()->Run(); |
| +} |
| + |
| +void WebThreadImpl::exitRunLoop() { |
| + CHECK(IsCurrentThread()); |
| + CHECK(thread_->message_loop()->is_running()); |
| + thread_->message_loop()->Quit(); |
| +} |
| + |
| bool WebThreadImpl::IsCurrentThread() const { |
| return thread_->thread_id() == base::PlatformThread::CurrentId(); |
| } |
| @@ -79,8 +91,9 @@ WebThreadImpl::~WebThreadImpl() { |
| } |
| WebThreadImplForMessageLoop::WebThreadImplForMessageLoop( |
| - base::MessageLoopProxy* message_loop) |
| - : message_loop_(message_loop) { |
| + MessageLoop* message_loop, base::PlatformThreadId thread_id) |
| + : message_loop_(message_loop) |
| + , thread_id_(thread_id) { |
| } |
| void WebThreadImplForMessageLoop::postTask(Task* task) { |
| @@ -96,8 +109,20 @@ void WebThreadImplForMessageLoop::postDelayedTask( |
| delay_ms); |
| } |
| +void WebThreadImplForMessageLoop::enterRunLoop() { |
| + CHECK(IsCurrentThread()); |
| + CHECK(!message_loop_->is_running()); // We don't support nesting. |
| + message_loop_->Run(); |
|
darin (slow to review)
2012/01/19 17:57:36
you could also just use MessageLoop::current()->Ru
|
| +} |
| + |
| +void WebThreadImplForMessageLoop::exitRunLoop() { |
| + CHECK(IsCurrentThread()); |
| + CHECK(message_loop_->is_running()); |
| + message_loop_->Quit(); |
| +} |
| + |
| bool WebThreadImplForMessageLoop::IsCurrentThread() const { |
| - return message_loop_->BelongsToCurrentThread(); |
| + return thread_id_ == base::PlatformThread::CurrentId(); |
| } |
| WebThreadImplForMessageLoop::~WebThreadImplForMessageLoop() { |