Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(407)

Unified Diff: sdk/lib/html/dartium/html_dartium.dart

Issue 18325006: Add isActive field on Timer. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
Index: sdk/lib/html/dartium/html_dartium.dart
diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
index c31f5887f883949f57b992f7d37e546214870ba2..139e4e3173f8165bf8b2fc69873928b550b5e4a7 100644
--- a/sdk/lib/html/dartium/html_dartium.dart
+++ b/sdk/lib/html/dartium/html_dartium.dart
@@ -30806,10 +30806,16 @@ final _forwardingPrintClosure = _Utils.forwardingPrint;
class _Timer implements Timer {
final canceller;
+ bool _isDone = false;
_Timer(this.canceller);
- void cancel() { canceller(); }
+ void cancel() {
+ _isDone = true;
+ canceller();
+ }
+
+ bool get isActive => !_isDone;
}
get _timerFactoryClosure => (int milliSeconds, void callback(Timer timer), bool repeating) {
@@ -30829,6 +30835,7 @@ get _timerFactoryClosure => (int milliSeconds, void callback(Timer timer), bool
};
class _PureIsolateTimer implements Timer {
+ bool _isDone = false;
final ReceivePort _port = new ReceivePort();
SendPort _sendPort; // Effectively final.
@@ -30838,6 +30845,7 @@ class _PureIsolateTimer implements Timer {
_sendPort = _port.toSendPort();
_port.receive((msg, replyTo) {
assert(msg == _TIMER_PING);
+ _isDone = !repeating;
callback(this);
if (!repeating) _cancel();
});
@@ -30851,12 +30859,15 @@ class _PureIsolateTimer implements Timer {
}
void _cancel() {
+ _isDone = true;
_port.close();
}
_send(msg) {
_sendToHelperIsolate(msg, _sendPort);
}
+
+ bool get isActive => !_isDone;
}
get _pureIsolateTimerFactoryClosure =>

Powered by Google App Engine
This is Rietveld 408576698