[roll] Roll fuchsia [fidl][rust] Wake up everyone waiting on channel
When there is more than one outstanding query, or if a query and an
event listener is active, the client chose one to signal when the
channel was ready. This means no other waker will be notified until
that waker repolled, and could lead to deadlocks when for example a
Response future is being held but not polled while another query is
being waited on.
Instead, wake all the tasks waiting for anything on the channel when
new data arrives.
Refactor some of the common code in ClientInner to their component
structs, consolidating code to register and wake tasks.
Test: updated client_always_wakes_pending_futures,
client_always_wakes_pending_futures_on_epitaph
fx test fidl_rust_lib_tests
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/513729
Original-Revision: ba36040f502bb20108d18366da2e70578b2cf286
GitOrigin-RevId: 738e155e7ce79130c5349e4f96b420d4ecacf1c5
Change-Id: I0fa5b54934b2d5d8d2c34476cad397f822e9bfd3
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.