summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryzshen <yzshen@chromium.org>2016-03-03 16:54:00 -0800
committerCommit bot <commit-bot@chromium.org>2016-03-04 00:55:06 +0000
commit243b2e8fb9cdd09cf9ec11aa2a68e26c76e00ee7 (patch)
tree2867c5f05e9a98224e6e4248747190c924ccdcd0
parent1a8a5c27a8a9189bc2ef5069e66e5c44bd1808c4 (diff)
downloadchromium_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/DEPS1
-rw-r--r--extensions/browser/mojo/stash_backend.cc15
-rw-r--r--mojo/android/BUILD.gn1
-rw-r--r--mojo/android/system/core_impl.cc25
-rw-r--r--mojo/mojo_base.gyp1
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',