[roll] Roll fuchsia [async] Extend error code in async_get_sequence_id

When implementing the sequence ID in the driver runtime, we found that
there are two kinds of driver dispatchers: synchronized and
unsynchronized, and it's unclear what should be the behavior of
unsynchronized dispatcher (which schedules tasks in parallel without
sequential ordering guarantees), when asked about a sequence ID.

If the unsynchronized dispatcher returns UNSUPPORTED, that causes the
FIDL runtime to fallback to checking physical threads, since the FIDL
runtime needs to work over other dispatchers that don't support
sequences. But checking physical threads is not reliable: an
unsynchronized dispatcher could happen to place tasks on the same
thread.

This CL adds an WRONG_TYPE error code to model unsynchronized
dispatchers better: when a thread running a task from a unsynchronized
dispatcher calls async_get_sequence_id, it will get WRONG_TYPE,
meaning the current task is not part of a sequence.

Sequence checkers in the FIDL runtime can then reliably turn that into
an error message, instead of relying on risky thread ID assertions.

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/695597
Original-Revision: e2225922e1daad27db2be95968c9c1d4c367968c
GitOrigin-RevId: 031357bd475533990d65763aa0bc8789ca652cdc
Change-Id: I98d44971e44a3d3173e09d45036c2c0ced6c86c3
1 file changed
tree: aceccf55ba605e5ee4da69c1e480501dd0ef6377
  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.