7#include <lib/async/default.h>
27#define FOR_EACH_BINDING(V) V(HandleWaiter, Cancel)
41HandleWaiter::HandleWaiter(
Handle* handle,
44 : wait_(this, handle->handle(),
signals),
50 zx_status_t status = wait_.Begin(async_get_default_dispatcher());
54HandleWaiter::~HandleWaiter() {
71void HandleWaiter::OnWaitComplete(async_dispatcher_t* dispatcher,
72 async::WaitBase* wait,
74 const zx_packet_signal_t* signal) {
90 DartState::Scope scope(state);
93 Dart_Handle zircon_lib = Dart_LookupLibrary(ToDart(
"dart:zircon"));
96 Dart_Handle owc_type =
97 Dart_GetClass(zircon_lib, ToDart(
"_OnWaitCompleteClosure"));
101 std::vector<Dart_Handle> owc_args{callback_.
Release(), ToDart(status),
102 ToDart(signal->observed)};
104 Dart_New(owc_type, Dart_Null(), owc_args.size(), owc_args.data());
107 Dart_Handle closure = Dart_GetField(owc, ToDart(
"_closure"));
112 Dart_Handle async_lib = Dart_LookupLibrary(ToDart(
"dart:async"));
114 std::vector<Dart_Handle> sm_args{closure};
115 Dart_Handle sm_result = Dart_Invoke(async_lib, ToDart(
"scheduleMicrotask"),
116 sm_args.size(), sm_args.data());
const std::weak_ptr< DartState > & dart_state() const
void ReleaseWaiter(HandleWaiter *waiter)
static fml::RefPtr< HandleWaiter > Create(Handle *handle, zx_signals_t signals, Dart_Handle callback)
#define DART_NATIVE_NO_UI_CHECK_CALLBACK(CLASS, METHOD)
#define DART_REGISTER_NATIVE(CLASS, METHOD)
#define IMPLEMENT_WRAPPERTYPEINFO(LibraryName, ClassName)
static guint signals[LAST_SIGNAL]
FlutterDesktopBinaryReply callback
#define FML_CHECK(condition)
#define FML_DCHECK(condition)
it will be possible to load the file into Perfetto s trace viewer use test Running tests that layout and measure text will not yield consistent results across various platforms Enabling this option will make font resolution default to the Ahem test font on all disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via dart
Dart_Handle ToDart(const T &object)
bool CheckAndHandleError(Dart_Handle handle)
Dart_Handle DartInvokeField(Dart_Handle target, const char *name, std::initializer_list< Dart_Handle > args)
#define FOR_EACH_BINDING(V)