diff options
author | yzshen <yzshen@chromium.org> | 2016-03-03 16:54:00 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-04 00:55:06 +0000 |
commit | 243b2e8fb9cdd09cf9ec11aa2a68e26c76e00ee7 (patch) | |
tree | 2867c5f05e9a98224e6e4248747190c924ccdcd0 | |
parent | 1a8a5c27a8a9189bc2ef5069e66e5c44bd1808c4 (diff) | |
download | chromium_src-243b2e8fb9cdd09cf9ec11aa2a68e26c76e00ee7.zip chromium_src-243b2e8fb9cdd09cf9ec11aa2a68e26c76e00ee7.tar.gz chromium_src-243b2e8fb9cdd09cf9ec11aa2a68e26c76e00ee7.tar.bz2 |
Remove the last usage of MojoAsyncWaiter.
BUG=585942
Review URL: https://codereview.chromium.org/1766443002
Cr-Commit-Position: refs/heads/master@{#379157}
-rw-r--r-- | extensions/browser/mojo/DEPS | 1 | ||||
-rw-r--r-- | extensions/browser/mojo/stash_backend.cc | 15 | ||||
-rw-r--r-- | mojo/android/BUILD.gn | 1 | ||||
-rw-r--r-- | mojo/android/system/core_impl.cc | 25 | ||||
-rw-r--r-- | mojo/mojo_base.gyp | 1 |
5 files changed, 26 insertions, 17 deletions
diff --git a/extensions/browser/mojo/DEPS b/extensions/browser/mojo/DEPS index c1bbc75..2273ad2 100644 --- a/extensions/browser/mojo/DEPS +++ b/extensions/browser/mojo/DEPS @@ -1,3 +1,4 @@ include_rules = [ + "+mojo/message_pump", "+mojo/shell/public/interfaces", ] diff --git a/extensions/browser/mojo/stash_backend.cc b/extensions/browser/mojo/stash_backend.cc index 340d42b..8d3eb40 100644 --- a/extensions/browser/mojo/stash_backend.cc +++ b/extensions/browser/mojo/stash_backend.cc @@ -11,8 +11,8 @@ #include "base/bind.h" #include "base/macros.h" +#include "mojo/message_pump/handle_watcher.h" #include "mojo/public/cpp/bindings/strong_binding.h" -#include "mojo/public/cpp/environment/async_waiter.h" namespace extensions { namespace { @@ -84,7 +84,7 @@ class StashBackend::StashEntry { void OnHandleReady(MojoResult result); // The waiters that are waiting for handles to be readable. - std::vector<scoped_ptr<mojo::AsyncWaiter>> waiters_; + std::vector<scoped_ptr<mojo::common::HandleWatcher>> waiters_; StashedObjectPtr stashed_object_; @@ -144,10 +144,13 @@ StashBackend::StashEntry::StashEntry(StashedObjectPtr stashed_object, return; for (size_t i = 0; i < stashed_object_->stashed_handles.size(); i++) { - waiters_.push_back(make_scoped_ptr(new mojo::AsyncWaiter( - stashed_object_->stashed_handles[i].get(), MOJO_HANDLE_SIGNAL_READABLE, - base::Bind(&StashBackend::StashEntry::OnHandleReady, - base::Unretained(this))))); + scoped_ptr<mojo::common::HandleWatcher> watcher( + new mojo::common::HandleWatcher()); + watcher->Start(stashed_object_->stashed_handles[i].get(), + MOJO_HANDLE_SIGNAL_READABLE, MOJO_DEADLINE_INDEFINITE, + base::Bind(&StashBackend::StashEntry::OnHandleReady, + base::Unretained(this))); + waiters_.push_back(std::move(watcher)); } } diff --git a/mojo/android/BUILD.gn b/mojo/android/BUILD.gn index 29ad85c..63a1344 100644 --- a/mojo/android/BUILD.gn +++ b/mojo/android/BUILD.gn @@ -48,7 +48,6 @@ source_set("libsystem_java") { "//mojo/edk/system", "//mojo/environment:chromium", "//mojo/message_pump", - "//mojo/public/cpp/environment", ] } diff --git a/mojo/android/system/core_impl.cc b/mojo/android/system/core_impl.cc index f26d6c5..d30d6a1 100644 --- a/mojo/android/system/core_impl.cc +++ b/mojo/android/system/core_impl.cc @@ -16,13 +16,12 @@ #include "base/memory/scoped_ptr.h" #include "base/message_loop/message_loop.h" #include "jni/CoreImpl_jni.h" -#include "mojo/public/c/environment/async_waiter.h" +#include "mojo/message_pump/handle_watcher.h" #include "mojo/public/c/system/core.h" -#include "mojo/public/cpp/environment/environment.h" namespace { -// |AsyncWait| is guaranteed never to return 0. +using MojoAsyncWaitID = uintptr_t; const MojoAsyncWaitID kInvalidHandleCancelID = 0; struct AsyncWaitCallbackData { @@ -36,7 +35,10 @@ struct AsyncWaitCallbackData { } }; -void AsyncWaitCallback(void* data, MojoResult result) { +void AsyncWaitCallback(mojo::common::HandleWatcher* watcher, + void* data, + MojoResult result) { + delete watcher; scoped_ptr<AsyncWaitCallbackData> callback_data( static_cast<AsyncWaitCallbackData*>(data)); mojo::android::Java_CoreImpl_onAsyncWaitResult( @@ -371,14 +373,16 @@ static ScopedJavaLocalRef<jobject> AsyncWait( new AsyncWaitCallbackData(env, jcaller, callback); MojoAsyncWaitID cancel_id; if (static_cast<MojoHandle>(mojo_handle) != MOJO_HANDLE_INVALID) { - cancel_id = Environment::GetDefaultAsyncWaiter()->AsyncWait( - mojo_handle, signals, deadline, AsyncWaitCallback, callback_data); + common::HandleWatcher* watcher = new common::HandleWatcher(); + cancel_id = reinterpret_cast<MojoAsyncWaitID>(watcher); + watcher->Start(Handle(static_cast<MojoHandle>(mojo_handle)), signals, + deadline, + base::Bind(&AsyncWaitCallback, watcher, callback_data)); } else { cancel_id = kInvalidHandleCancelID; base::MessageLoop::current()->PostTask( - FROM_HERE, - base::Bind( - &AsyncWaitCallback, callback_data, MOJO_RESULT_INVALID_ARGUMENT)); + FROM_HERE, base::Bind(&AsyncWaitCallback, nullptr, callback_data, + MOJO_RESULT_INVALID_ARGUMENT)); } base::android::ScopedJavaLocalRef<jobject> cancellable = Java_CoreImpl_newAsyncWaiterCancellableImpl( @@ -399,7 +403,8 @@ static void CancelAsyncWait(JNIEnv* env, } scoped_ptr<AsyncWaitCallbackData> deleter( reinterpret_cast<AsyncWaitCallbackData*>(data_ptr)); - Environment::GetDefaultAsyncWaiter()->CancelWait(id); + delete reinterpret_cast<common::HandleWatcher*>( + static_cast<MojoAsyncWaitID>(id)); } static jint GetNativeBufferOffset(JNIEnv* env, diff --git a/mojo/mojo_base.gyp b/mojo/mojo_base.gyp index 50d8825..6ca027f 100644 --- a/mojo/mojo_base.gyp +++ b/mojo/mojo_base.gyp @@ -342,6 +342,7 @@ 'mojo_edk.gyp:mojo_system_impl', 'mojo_environment_chromium', 'mojo_jni_headers', + 'mojo_public.gyp:mojo_message_pump_lib', ], 'sources': [ 'android/system/core_impl.cc', |