[roll] Roll fuchsia [fidl][cpp] UnbindMaybeGetEndpoint
The sysmem protocols and others require being able to unbind the client
endpoint from a client after completing some two-way calls. This CL adds
that support to {fidl,fdf}::[Wire]Client. ShareClients are more
complicated due to their multi-threaded nature and also not needed by
Chromium at the moment.
It's done by adding a hook in the AsyncBinding class that lets
binding implementations give up their managed endpoint if safe. In case
of FIDL client bindings, this is only safe when the client is
effectively single-threaded (no sync calls happening at the same time).
After obtaining the endpoint, ClientBase additionally checks that there
are no pending two-way calls. Only under these two conditions do we
return the endpoint to the user. Otherwise, the client is just torn down
without giving back the endpoint.
In the future we could add the server side equivalent too but this CL
only implements endpoint recovering for clients.
Because zxtest does not support type parameterized tests, I converted
some tests to gtest. Those will also be running by CTF down the road.
Original-Bug: 68742
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/819302
Original-Revision: 9a59ceca5b6212151daa5d5ee4c53a6c76c4ef0a
GitOrigin-RevId: 42af3cae626a35e4d3b52d1026d9d7a6210ede6e
Change-Id: Iba9c42b40f69ebfd546e061e28aa8e8ffc7e2405
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.