5572df1458
Change-Id: I907e59a9df9407f924c0518a185d5b28ab46e381 Cq-Include-Trybots: luci.dart.try:vm-kernel-win-release-x64-try,vm-kernel-optcounter-threshold-linux-release-x64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-release-simarm-try,vm-kernel-precomp-linux-release-simarm64-try,vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-win-release-x64-try Reviewed-on: https://dart-review.googlesource.com/69971 Commit-Queue: Samir Jindel <sjindel@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com>
33 lines
893 B
Dart
33 lines
893 B
Dart
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
// part of "async_patch.dart";
|
|
|
|
@patch
|
|
class _AsyncRun {
|
|
@patch
|
|
static void _scheduleImmediate(void callback()) {
|
|
if (_ScheduleImmediate._closure == null) {
|
|
throw new UnsupportedError("Microtasks are not supported");
|
|
}
|
|
_ScheduleImmediate._closure(callback);
|
|
}
|
|
}
|
|
|
|
typedef void _ScheduleImmediateClosure(void callback());
|
|
|
|
class _ScheduleImmediate {
|
|
static _ScheduleImmediateClosure _closure;
|
|
}
|
|
|
|
@pragma("vm:entry-point")
|
|
void _setScheduleImmediateClosure(_ScheduleImmediateClosure closure) {
|
|
_ScheduleImmediate._closure = closure;
|
|
}
|
|
|
|
@pragma("vm:entry-point")
|
|
void _ensureScheduleImmediate() {
|
|
_AsyncRun._scheduleImmediate(_startMicrotaskLoop);
|
|
}
|