diff options
author | yzshen <yzshen@chromium.org> | 2016-02-22 17:22:10 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-02-23 01:23:00 +0000 |
commit | 8ef9022a0d352066587791b3e225ca264c688ade (patch) | |
tree | 099161b2828cb2e83dfb77037930a6ae68c78b8e /mojo/public/cpp/bindings/lib/interface_ptr_state.h | |
parent | 9166c9c8a3fbbd0dc74f837660ca6952a2203402 (diff) | |
download | chromium_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.h | 3 |
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_); |