class FuchsiaAsyncRustTaskProvider

Defined at line 46 of file ../../src/developer/debug/zxdb/client/fuchsia_async_rust_task_provider.h

This class implements the |AsyncTaskProvider| interface for the fuchsia-async executor

implementation: https://fuchsia-docs.firebaseapp.com/rust/fuchsia_async/index.html.

This is (at the time of writing) the canonical implementation for all asynchronous Rust code

written for the Fuchsia platform. Therefore, this provider implementation is *extremely* specific

and relies on specific implementation details of the Executor in order to provide the level of

details that we desire.

This class is *not* generalizable to other async ecosystems like Tokio.

This class supports identifying the following constructs from any thread that is found to have

the fuchsia-async executor present in the stack.

* Scope

* ScopeHandle

* scope::Join

* Tasks

* Futures (from the futures-rs crate)

* futures-util types:

* Fuse

* Map

* MaybeDone

* Then

* Remote

&

RemoteHandle

* WrappedFuture

* futures-util macros:

* join!

* select!

* Fuchsia platform subsystem Task and Future implementations:

* fuchsia_trace's TraceFuture

* fxfs's FutureWithGuard

* starnix_core's WrappedFuture

* vfs's TaskRunner and RequestListener

Public Methods

void FuchsiaAsyncRustTaskProvider ()

Defined at line 1081 of file ../../src/developer/debug/zxdb/client/fuchsia_async_rust_task_provider.cc

void ~FuchsiaAsyncRustTaskProvider ()

Defined at line 1082 of file ../../src/developer/debug/zxdb/client/fuchsia_async_rust_task_provider.cc

bool CanHandle (Frame * frame)

AsyncTaskProvider implementation:

Defined at line 1084 of file ../../src/developer/debug/zxdb/client/fuchsia_async_rust_task_provider.cc

void GetTasks (Frame * frame, fit::callback<void (const Err &, std::vector<std::unique_ptr<AsyncTask>>)> cb)

Defined at line 1092 of file ../../src/developer/debug/zxdb/client/fuchsia_async_rust_task_provider.cc