OLD | NEW |
1 var isolate; | 1 var isolate; |
2 (function(exports) { | 2 (function(exports) { |
3 'use strict'; | 3 'use strict'; |
4 class Capability extends core.Object { | 4 class Capability extends core.Object { |
5 Capability() { | 5 Capability() { |
6 return new _isolate_helper.CapabilityImpl(); | 6 return new _isolate_helper.CapabilityImpl(); |
7 } | 7 } |
8 } | 8 } |
9 class IsolateSpawnException extends core.Object { | 9 class IsolateSpawnException extends core.Object { |
10 IsolateSpawnException(message) { | 10 IsolateSpawnException(message) { |
11 this.message = message; | 11 this.message = message; |
12 } | 12 } |
13 toString() { | 13 toString() { |
14 return `IsolateSpawnException: ${this.message}`; | 14 return `IsolateSpawnException: ${this.message}`; |
15 } | 15 } |
16 } | 16 } |
17 IsolateSpawnException[dart.implements] = () => [core.Exception]; | 17 IsolateSpawnException[dart.implements] = () => [core.Exception]; |
18 let _currentIsolateCache = Symbol('_currentIsolateCache'); | |
19 let _pause = Symbol('_pause'); | 18 let _pause = Symbol('_pause'); |
20 class Isolate extends core.Object { | 19 class Isolate extends core.Object { |
21 Isolate(controlPort, opts) { | 20 Isolate(controlPort, opts) { |
22 let pauseCapability = opts && 'pauseCapability' in opts ? opts.pauseCapabi
lity : null; | 21 let pauseCapability = opts && 'pauseCapability' in opts ? opts.pauseCapabi
lity : null; |
23 let terminateCapability = opts && 'terminateCapability' in opts ? opts.ter
minateCapability : null; | 22 let terminateCapability = opts && 'terminateCapability' in opts ? opts.ter
minateCapability : null; |
24 this.controlPort = controlPort; | 23 this.controlPort = controlPort; |
25 this.pauseCapability = pauseCapability; | 24 this.pauseCapability = pauseCapability; |
26 this.terminateCapability = terminateCapability; | 25 this.terminateCapability = terminateCapability; |
27 } | 26 } |
28 static get current() { | 27 static get current() { |
29 return Isolate[_currentIsolateCache]; | 28 return Isolate._currentIsolateCache; |
30 } | 29 } |
31 static spawn(entryPoint, message, opts) { | 30 static spawn(entryPoint, message, opts) { |
32 let paused = opts && 'paused' in opts ? opts.paused : false; | 31 let paused = opts && 'paused' in opts ? opts.paused : false; |
33 try { | 32 try { |
34 return dart.as(_isolate_helper.IsolateNatives.spawnFunction(entryPoint,
message, paused).then(msg => new Isolate(dart.as(dart.dindex(msg, 1), SendPort),
{pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCapability
: dart.as(dart.dindex(msg, 3), Capability)})), async.Future$(Isolate)); | 33 return dart.as(_isolate_helper.IsolateNatives.spawnFunction(entryPoint,
message, paused).then(msg => new Isolate(dart.as(dart.dindex(msg, 1), SendPort),
{pauseCapability: dart.as(dart.dindex(msg, 2), Capability), terminateCapability
: dart.as(dart.dindex(msg, 3), Capability)})), async.Future$(Isolate)); |
35 } catch (e) { | 34 } catch (e) { |
36 let st = dart.stackTrace(e); | 35 let st = dart.stackTrace(e); |
37 return new async.Future$(Isolate).error(e, st); | 36 return new async.Future$(Isolate).error(e, st); |
38 } | 37 } |
39 | 38 |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
148 port = null; | 147 port = null; |
149 }).bind(this) | 148 }).bind(this) |
150 }); | 149 }); |
151 return controller.stream; | 150 return controller.stream; |
152 } | 151 } |
153 } | 152 } |
154 Isolate.IMMEDIATE = 0; | 153 Isolate.IMMEDIATE = 0; |
155 Isolate.BEFORE_NEXT_EVENT = 1; | 154 Isolate.BEFORE_NEXT_EVENT = 1; |
156 Isolate.AS_EVENT = 2; | 155 Isolate.AS_EVENT = 2; |
157 dart.defineLazyProperties(Isolate, { | 156 dart.defineLazyProperties(Isolate, { |
158 get [_currentIsolateCache]() { | 157 get _currentIsolateCache() { |
159 return _isolate_helper.IsolateNatives.currentIsolate; | 158 return _isolate_helper.IsolateNatives.currentIsolate; |
160 } | 159 } |
161 }); | 160 }); |
162 class SendPort extends core.Object {} | 161 class SendPort extends core.Object {} |
163 SendPort[dart.implements] = () => [Capability]; | 162 SendPort[dart.implements] = () => [Capability]; |
164 class ReceivePort extends core.Object { | 163 class ReceivePort extends core.Object { |
165 ReceivePort() { | 164 ReceivePort() { |
166 return new _isolate_helper.ReceivePortImpl(); | 165 return new _isolate_helper.ReceivePortImpl(); |
167 } | 166 } |
168 fromRawReceivePort(rawPort) { | 167 fromRawReceivePort(rawPort) { |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 _RemoteStackTrace[dart.implements] = () => [core.StackTrace]; | 211 _RemoteStackTrace[dart.implements] = () => [core.StackTrace]; |
213 // Exports: | 212 // Exports: |
214 exports.Capability = Capability; | 213 exports.Capability = Capability; |
215 exports.IsolateSpawnException = IsolateSpawnException; | 214 exports.IsolateSpawnException = IsolateSpawnException; |
216 exports.Isolate = Isolate; | 215 exports.Isolate = Isolate; |
217 exports.SendPort = SendPort; | 216 exports.SendPort = SendPort; |
218 exports.ReceivePort = ReceivePort; | 217 exports.ReceivePort = ReceivePort; |
219 exports.RawReceivePort = RawReceivePort; | 218 exports.RawReceivePort = RawReceivePort; |
220 exports.RemoteError = RemoteError; | 219 exports.RemoteError = RemoteError; |
221 })(isolate || (isolate = {})); | 220 })(isolate || (isolate = {})); |
OLD | NEW |