summaryrefslogtreecommitdiffstats
path: root/mojo/public/dart/src/timer_queue.dart
diff options
context:
space:
mode:
Diffstat (limited to 'mojo/public/dart/src/timer_queue.dart')
-rw-r--r--mojo/public/dart/src/timer_queue.dart53
1 files changed, 0 insertions, 53 deletions
diff --git a/mojo/public/dart/src/timer_queue.dart b/mojo/public/dart/src/timer_queue.dart
deleted file mode 100644
index 8f9936b..0000000
--- a/mojo/public/dart/src/timer_queue.dart
+++ /dev/null
@@ -1,53 +0,0 @@
-// Copyright 2014 The Chromium Authors. 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 core;
-
-class Timeout implements Comparable<Timeout> {
- int deadline; // milliseconds since the Unix epoch.
- SendPort port;
-
- Timeout(this.port, this.deadline);
-
- int compareTo(Timeout other) => other.deadline - deadline;
-}
-
-class TimerQueue {
- SplayTreeSet _set;
- Timeout _nextTimer;
-
- TimerQueue() : _set = new SplayTreeSet();
-
- void updateTimer(SendPort port, int deadline) {
- var removedTimeout = null;
- _set.removeWhere((timeout) {
- if (timeout.port == port) {
- removedTimeout = timeout;
- return true;
- }
- return false;
- });
-
- if ((removedTimeout == null) && (deadline >= 0)) {
- _set.add(new Timeout(port, deadline));
- } else {
- if (deadline > 0) {
- removedTimeout.deadline = deadline;
- _set.add(removedTimeout);
- }
- }
-
- if (_set.isNotEmpty) {
- _nextTimer = _set.first;
- } else {
- _nextTimer = null;
- }
- }
-
- void removeCurrent() => updateTimer(currentPort, -1);
-
- bool get hasTimer => _nextTimer != null;
- int get currentTimeout => _nextTimer.deadline;
- SendPort get currentPort => _nextTimer.port;
-}