summaryrefslogtreecommitdiffstats
path: root/mojo/public/cpp/bindings/lib/binding_state.h
diff options
context:
space:
mode:
authoryzshen <yzshen@chromium.org>2016-02-22 17:22:10 -0800
committerCommit bot <commit-bot@chromium.org>2016-02-23 01:23:00 +0000
commit8ef9022a0d352066587791b3e225ca264c688ade (patch)
tree099161b2828cb2e83dfb77037930a6ae68c78b8e /mojo/public/cpp/bindings/lib/binding_state.h
parent9166c9c8a3fbbd0dc74f837660ca6952a2203402 (diff)
downloadchromium_src-8ef9022a0d352066587791b3e225ca264c688ade.zip
chromium_src-8ef9022a0d352066587791b3e225ca264c688ade.tar.gz
chromium_src-8ef9022a0d352066587791b3e225ca264c688ade.tar.bz2
Reland "Mojo C++ bindings: support sync methods - part 2"
This CL introduces the correct re-entrancy behavior: when a sync call is waiting for response, allow incoming sync requests on the same thread to re-enter, async messages are queued until the sync call completes. The following will be in future CLs: - Support sync calls with associated interfaces. The original CL is at https://codereview.chromium.org/1713203002/ BUG=577699 Review URL: https://codereview.chromium.org/1723673002 Cr-Commit-Position: refs/heads/master@{#376892}
Diffstat (limited to 'mojo/public/cpp/bindings/lib/binding_state.h')
-rw-r--r--mojo/public/cpp/bindings/lib/binding_state.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/mojo/public/cpp/bindings/lib/binding_state.h b/mojo/public/cpp/bindings/lib/binding_state.h
index 3d025fb..6483d94 100644
--- a/mojo/public/cpp/bindings/lib/binding_state.h
+++ b/mojo/public/cpp/bindings/lib/binding_state.h
@@ -56,8 +56,8 @@ class BindingState<Interface, false> {
filters.Append<internal::MessageHeaderValidator>();
filters.Append<typename Interface::RequestValidator_>();
- router_ =
- new internal::Router(std::move(handle), std::move(filters), waiter);
+ router_ = new internal::Router(std::move(handle), std::move(filters),
+ Interface::HasSyncMethods_, waiter);
router_->set_incoming_receiver(&stub_);
router_->set_connection_error_handler(
[this]() { connection_error_handler_.Run(); });