[roll] Roll fuchsia [roll] Roll third_party/pigweed pw_async2: Move DoDestroy out of the base Task class

DoDestroy() makes it possible for Dispatchers to own a Task's memory.
The dispatcher calls DoDestroy() to free the task when it completes.
Tasks not owned by the dispatcher should not implement DoDestroy(). Move
the virtual DoDestroy() function to a derived OwnedTask class to make
memory ownership explicit.

Track if a Task is an OwnedTask with a member variable. This simplifies
removing the task execution lock in a subsequent CL. The Dispatcher
checks if the task needs to be destroyed while the dispatcher lock is
held, then releases the lock and calls DoDestroy(). Since the Dispatcher
owns these tasks exclusively, it is not necessary to hold the lock. This
avoids deallocating memory while the dispatcher lock is held, and is a
step towards removing the task execution lock.

Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/340534
Original-Revision: c3435af9777324f7246bbdaa87277b957cdac60d

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1412036
Original-Revision: 80b882ce1e9ba6cc4c1a966d5c46f294275ee055
GitOrigin-RevId: e808959b40f2fdad1cc6991f47adea9458b4aae9
Change-Id: Idaccc149efeb2a22a7114e32357fb687725365a5
1 file changed
tree: 7f28b2bfedd51de1234e4c51f955056183bb8c9d
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. flower
  6. jiri.lock
  7. MILESTONE
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. 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 in one of the communication channels documented at get involved.

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.