summaryrefslogtreecommitdiffstats
path: root/mojo/public/cpp/bindings/lib/interface_ptr_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/interface_ptr_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/interface_ptr_state.h')
-rw-r--r--mojo/public/cpp/bindings/lib/interface_ptr_state.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/mojo/public/cpp/bindings/lib/interface_ptr_state.h b/mojo/public/cpp/bindings/lib/interface_ptr_state.h
index a175edd..b2093bb 100644
--- a/mojo/public/cpp/bindings/lib/interface_ptr_state.h
+++ b/mojo/public/cpp/bindings/lib/interface_ptr_state.h
@@ -172,7 +172,8 @@ class InterfacePtrState<Interface, false> {
filters.Append<MessageHeaderValidator>();
filters.Append<typename Interface::ResponseValidator_>();
- router_ = new Router(std::move(handle_), std::move(filters), waiter_);
+ router_ =
+ new Router(std::move(handle_), std::move(filters), false, waiter_);
waiter_ = nullptr;
proxy_ = new Proxy(router_);