[roll] Roll fuchsia [fidl][llcpp] Completely remove WaitForChannel

The feature to block the current thread until all sync calls on a
`fidl::WireClient` complete and extract the channel had been removed a
while ago due to deadlock risks and lack of use. This CL completely
removes this concept from the binding internals, resulting in simpler
code and easier to reasonable ownership. Now a `ClientBase` weakly
references a `AsyncClientBinding`, which has a shared `zx::channel` to
which it may vend out new shared references to support in-progress sync
calls.

Under this ownership model, the channel will be destroyed as soon as the
binding tears down (provided there are no sync calls), regardless if the
user destroys their client objects. This would help reduce resource
leaks.

The current semantics is that if the user destroys or teardowns a
`Wire{Shared}Client` while there are ongoing sync calls, those sync
calls would be allowed to finish, after which the channel is finally
destroyed. In the future we would like to explore eagerly interrupting
those sync calls in this case (fxbug.dev/78906).

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/582043
Original-Revision: 0d04a4bc93d29c028e2647ee7236af350df1462f
GitOrigin-RevId: 80261d4571054d699f82b26f173a8e8a4ad4139f
Change-Id: I408c76dba03129f3e2dc6cc3275d858f9130cc73
1 file changed
tree: 08715526ccc146fa5b59dc7ee9aa639b1a146d89
  1. garnet/
  2. infra/
  3. peridot/
  4. third_party/
  5. topaz/
  6. zircon/
  7. firmware
  8. flower
  9. jiri.lock
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

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.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.