[roll] Roll fuchsia [driver_runtime] Convert dispatcher to use RefPtr.

When fdf_dispatcher_destroy() is called, the dispatcher
DispatchCallbacks callback may be currently running,
or can be the context from which fdf_dispatcher_destroy()
is called from. This change ensures that the fdf_dispatcher
object remains alive until the last callback returns.

This is still an issue for callbacks which happen without
the async loop.

---------------
Implementation
---------------
The initial RefPtr is created in fdf_dispatcher_create(),
and that reference is recovered in fdf_dispatcher_destroy().

Each time we call EventWaiter::BeginWaitWithRef(), a new
reference to the dispatcher is stored, which is then
passed to the Dispatcher::DispatchCallbacks function.

Multiply: fuchsia-pkg://fuchsia.com/driver_runtime_tests#meta/driver_runtime_tests.cm : 100

Original-Bug: 87840
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/635538
Original-Revision: 9d1bbdacdbb7a69147ff44010f519e47b718af52
GitOrigin-RevId: 8e8b42ff77bacc4dcb4da7eed003dff4ad718a7d
Change-Id: I14abc211e6bce8b6c438480544ee48d6baf66715
1 file changed
tree: 9ab4e4e6243ec867054cffe93ce89cbdd26cd080
  1. infra/
  2. third_party/
  3. cts
  4. firmware
  5. flower
  6. jiri.lock
  7. minimal
  8. prebuilts
  9. README.md
  10. stem
  11. test_durations
  12. toolchain
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.