[roll] Roll fuchsia [fidl][cpp][driver] Support unbind from message handler The DriverWaiter class previously assumed that the wait is never canceled from within a message handler. That assumption is incorrect. When that happens, the `channel_read` state will be nullopt, because it is always set to nullopt before calling the success_handler. A crash ensues. This CL simplifies DriverWaiter to simply always retain the channel_read state. In fact we don't even need any "State" or "std::optional" boxing -- the channel_read variable can be stored inline in DriverWaiter. It also adds a test that deterministically reproduces instead of flaking. Original-Fixed: 104524 Original-Fixed: 104346 Original-Fixed: 104549 Multiply: fidl_driver_api_test: 1000 Multiply: fidl_driver_client_test: 1000 Multiply: fidl_driver_server_test: 1000 Multiply: fidl_driver_natural_async_two_way_test: 1000 Multiply: fidl_driver_wire_sync_zircon_handle_test: 1000 Multiply: fidl_driver_wire_sync_two_way_test: 1000 Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/702324 Original-Revision: f756413edd91b9f4562dec73865a8d78b03397f4 GitOrigin-RevId: 7df6125c80ff0559e0558f29a938d69af9ba6ac5 Change-Id: Ic72776aacbc387e2a6b7ef7a9da9322cdb3d363a
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.