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

Side by Side Diff: lib/async/async_patch.dart

Issue 1659163007: Rename fletch -> dartino (Closed) Base URL: https://github.com/dartino/sdk.git@master
Patch Set: address comments Created 4 years, 10 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:
View unified diff | Download patch
« no previous file with comments | « include/static_ffi.h ('k') | lib/collection/collection_patch.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dartino project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dartino project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE.md file. 3 // BSD-style license that can be found in the LICENSE.md file.
4 4
5 import 'dart:fletch._system' as fletch; 5 import 'dart:dartino._system' as dartino;
6 import 'dart:fletch._system' show patch; 6 import 'dart:dartino._system' show patch;
7 import 'dart:fletch'; 7 import 'dart:dartino';
8 import 'dart:fletch.os' as os; 8 import 'dart:dartino.os' as os;
9 import 'dart:math'; 9 import 'dart:math';
10 10
11 Channel _eventQueue; 11 Channel _eventQueue;
12 int _numberOfEvents = 0; 12 int _numberOfEvents = 0;
13 13
14 void _handleEvents() { 14 void _handleEvents() {
15 while (_numberOfEvents > 0) { 15 while (_numberOfEvents > 0) {
16 var event = _eventQueue.receive(); 16 var event = _eventQueue.receive();
17 _numberOfEvents--; 17 _numberOfEvents--;
18 event(); 18 event();
(...skipping 15 matching lines...) Expand all
34 _ensureEventQueue().send(callback); 34 _ensureEventQueue().send(callback);
35 } 35 }
36 } 36 }
37 37
38 int get _currentTimestamp { 38 int get _currentTimestamp {
39 return new DateTime.now().millisecondsSinceEpoch; 39 return new DateTime.now().millisecondsSinceEpoch;
40 } 40 }
41 41
42 // TODO(ajohnsen): We should create a heap-like structure in Dart, so we only 42 // TODO(ajohnsen): We should create a heap-like structure in Dart, so we only
43 // have one active port/channel per process. 43 // have one active port/channel per process.
44 class _FletchTimer implements Timer { 44 class _DartinoTimer implements Timer {
45 final int _milliseconds; 45 final int _milliseconds;
46 var _callback; 46 var _callback;
47 int _timestamp = 0; 47 int _timestamp = 0;
48 _FletchTimer _next; 48 _DartinoTimer _next;
49 bool _isActive = true; 49 bool _isActive = true;
50 Channel _channel; 50 Channel _channel;
51 Port _port; 51 Port _port;
52 52
53 bool get _isPeriodic => _milliseconds >= 0; 53 bool get _isPeriodic => _milliseconds >= 0;
54 54
55 _FletchTimer(this._timestamp, this._callback) 55 _DartinoTimer(this._timestamp, this._callback)
56 : _milliseconds = -1 { 56 : _milliseconds = -1 {
57 _channel = new Channel(); 57 _channel = new Channel();
58 _port = new Port(_channel); 58 _port = new Port(_channel);
59 _schedule(); 59 _schedule();
60 } 60 }
61 61
62 _FletchTimer.periodic(this._timestamp, 62 _DartinoTimer.periodic(this._timestamp,
63 void callback(Timer timer), 63 void callback(Timer timer),
64 this._milliseconds) { 64 this._milliseconds) {
65 _callback = () { callback(this); }; 65 _callback = () { callback(this); };
66 _channel = new Channel(); 66 _channel = new Channel();
67 _port = new Port(_channel); 67 _port = new Port(_channel);
68 _schedule(); 68 _schedule();
69 } 69 }
70 70
71 void _schedule() { 71 void _schedule() {
72 Fiber.fork(() { 72 Fiber.fork(() {
(...skipping 17 matching lines...) Expand all
90 } 90 }
91 91
92 void cancel() { 92 void cancel() {
93 _scheduleTimeout(-1, _port); 93 _scheduleTimeout(-1, _port);
94 _port.send(-1); 94 _port.send(-1);
95 _isActive = false; 95 _isActive = false;
96 } 96 }
97 97
98 bool get isActive => _isActive; 98 bool get isActive => _isActive;
99 99
100 @fletch.native external static void _scheduleTimeout(int timeout, Port port); 100 @dartino.native external static void _scheduleTimeout(int timeout, Port port);
101 } 101 }
102 102
103 @patch class Timer { 103 @patch class Timer {
104 @patch static Timer _createTimer(Duration duration, void callback()) { 104 @patch static Timer _createTimer(Duration duration, void callback()) {
105 int milliseconds = max(0, duration.inMilliseconds); 105 int milliseconds = max(0, duration.inMilliseconds);
106 return new _FletchTimer(_currentTimestamp + milliseconds, callback); 106 return new _DartinoTimer(_currentTimestamp + milliseconds, callback);
107 } 107 }
108 108
109 @patch static Timer _createPeriodicTimer(Duration duration, 109 @patch static Timer _createPeriodicTimer(Duration duration,
110 void callback(Timer timer)) { 110 void callback(Timer timer)) {
111 int milliseconds = max(0, duration.inMilliseconds); 111 int milliseconds = max(0, duration.inMilliseconds);
112 return new _FletchTimer.periodic(_currentTimestamp + milliseconds, 112 return new _DartinoTimer.periodic(_currentTimestamp + milliseconds,
113 callback, 113 callback,
114 milliseconds); 114 milliseconds);
115 } 115 }
116 } 116 }
117 117
118 @patch void _rethrow(Object error, StackTrace stackTrace) { 118 @patch void _rethrow(Object error, StackTrace stackTrace) {
119 throw new AsyncError(error, stackTrace); 119 throw new AsyncError(error, stackTrace);
120 } 120 }
OLDNEW
« no previous file with comments | « include/static_ffi.h ('k') | lib/collection/collection_patch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698