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