@quenk/potoo 4.0.12 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/actor/address.d.ts +5 -1
- package/lib/actor/address.js +7 -2
- package/lib/actor/address.js.map +1 -1
- package/lib/actor/system/vm/allocator/index.d.ts +9 -2
- package/lib/actor/system/vm/allocator/map.d.ts +2 -1
- package/lib/actor/system/vm/allocator/map.js +30 -23
- package/lib/actor/system/vm/allocator/map.js.map +1 -1
- package/lib/actor/system/vm/event/dispatcher.d.ts +4 -4
- package/lib/actor/system/vm/event/dispatcher.js +9 -9
- package/lib/actor/system/vm/event/dispatcher.js.map +1 -1
- package/lib/actor/system/vm/event/index.d.ts +1 -1
- package/lib/actor/system/vm/event/index.js +1 -1
- package/lib/actor/system/vm/index.d.ts +16 -9
- package/lib/actor/system/vm/index.js +17 -9
- package/lib/actor/system/vm/index.js.map +1 -1
- package/lib/actor/system/vm/runtime/error.d.ts +0 -42
- package/lib/actor/system/vm/runtime/error.js +1 -61
- package/lib/actor/system/vm/runtime/error.js.map +1 -1
- package/lib/actor/system/vm/thread/collector.d.ts +35 -0
- package/lib/actor/system/vm/thread/collector.js +52 -0
- package/lib/actor/system/vm/thread/collector.js.map +1 -0
- package/lib/actor/system/vm/thread/factory.js +2 -2
- package/lib/actor/system/vm/thread/factory.js.map +1 -1
- package/lib/actor/system/vm/thread/index.d.ts +5 -0
- package/lib/actor/system/vm/thread/index.js.map +1 -1
- package/lib/actor/system/vm/thread/process.d.ts +4 -2
- package/lib/actor/system/vm/thread/process.js +4 -3
- package/lib/actor/system/vm/thread/process.js.map +1 -1
- package/lib/actor/system/vm/thread/runner.d.ts +31 -0
- package/lib/actor/system/vm/thread/runner.js +60 -0
- package/lib/actor/system/vm/thread/runner.js.map +1 -0
- package/lib/actor/system/vm/thread/shared/js.d.ts +4 -3
- package/lib/actor/system/vm/thread/shared/js.js +18 -6
- package/lib/actor/system/vm/thread/shared/js.js.map +1 -1
- package/lib/actor/template.d.ts +0 -5
- package/lib/actor/template.js +1 -13
- package/lib/actor/template.js.map +1 -1
- package/package.json +1 -1
- package/lib/actor/system/vm/frame.d.ts +0 -228
- package/lib/actor/system/vm/frame.js +0 -233
- package/lib/actor/system/vm/frame.js.map +0 -1
- package/lib/actor/system/vm/object/foreign.d.ts +0 -9
- package/lib/actor/system/vm/object/foreign.js +0 -13
- package/lib/actor/system/vm/object/foreign.js.map +0 -1
- package/lib/actor/system/vm/object/index.d.ts +0 -5
- package/lib/actor/system/vm/object/index.js +0 -3
- package/lib/actor/system/vm/object/index.js.map +0 -1
- package/lib/actor/system/vm/object/list.d.ts +0 -8
- package/lib/actor/system/vm/object/list.js +0 -12
- package/lib/actor/system/vm/object/list.js.map +0 -1
- package/lib/actor/system/vm/op/actor.d.ts +0 -69
- package/lib/actor/system/vm/op/actor.js +0 -118
- package/lib/actor/system/vm/op/actor.js.map +0 -1
- package/lib/actor/system/vm/op/base.d.ts +0 -142
- package/lib/actor/system/vm/op/base.js +0 -242
- package/lib/actor/system/vm/op/base.js.map +0 -1
- package/lib/actor/system/vm/op/index.d.ts +0 -106
- package/lib/actor/system/vm/op/index.js +0 -232
- package/lib/actor/system/vm/op/index.js.map +0 -1
- package/lib/actor/system/vm/op/object.d.ts +0 -31
- package/lib/actor/system/vm/op/object.js +0 -78
- package/lib/actor/system/vm/op/object.js.map +0 -1
- package/lib/actor/system/vm/registry.d.ts +0 -126
- package/lib/actor/system/vm/registry.js +0 -191
- package/lib/actor/system/vm/registry.js.map +0 -1
- package/lib/actor/system/vm/script/index.d.ts +0 -49
- package/lib/actor/system/vm/script/index.js +0 -29
- package/lib/actor/system/vm/script/index.js.map +0 -1
- package/lib/actor/system/vm/script/info.d.ts +0 -279
- package/lib/actor/system/vm/script/info.js +0 -256
- package/lib/actor/system/vm/script/info.js.map +0 -1
- package/lib/actor/system/vm/type.d.ts +0 -90
- package/lib/actor/system/vm/type.js +0 -29
- package/lib/actor/system/vm/type.js.map +0 -1
package/lib/actor/address.d.ts
CHANGED
|
@@ -21,13 +21,17 @@ export interface AddressMap {
|
|
|
21
21
|
*/
|
|
22
22
|
export declare const isRestricted: (id: string) => boolean;
|
|
23
23
|
/**
|
|
24
|
-
* make a
|
|
24
|
+
* make a childaddress given its id and parent address.
|
|
25
25
|
*/
|
|
26
26
|
export declare const make: (parent: Address, id: string) => Address;
|
|
27
27
|
/**
|
|
28
28
|
* getParent computes the parent of an Address.
|
|
29
29
|
*/
|
|
30
30
|
export declare const getParent: (addr: Address) => Address;
|
|
31
|
+
/**
|
|
32
|
+
* isRootLevel tests whether an address is a child of the root actor.
|
|
33
|
+
*/
|
|
34
|
+
export declare const isRootLevel: (addr: Address) => boolean;
|
|
31
35
|
/**
|
|
32
36
|
* getId provides the id part of an actor address.
|
|
33
37
|
*/
|
package/lib/actor/address.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isGroup = exports.isChild = exports.getId = exports.getParent = exports.make = exports.isRestricted = exports.ADDRESS_RESTRICTED = exports.ADDRESS_EMPTY = exports.ADDRESS_SYSTEM = exports.ADDRESS_DISCARD = exports.SEPERATOR = void 0;
|
|
3
|
+
exports.isGroup = exports.isChild = exports.getId = exports.isRootLevel = exports.getParent = exports.make = exports.isRestricted = exports.ADDRESS_RESTRICTED = exports.ADDRESS_EMPTY = exports.ADDRESS_SYSTEM = exports.ADDRESS_DISCARD = exports.SEPERATOR = void 0;
|
|
4
4
|
const array_1 = require("@quenk/noni/lib/data/array");
|
|
5
5
|
const string_1 = require("@quenk/noni/lib/data/string");
|
|
6
6
|
exports.SEPERATOR = '/';
|
|
@@ -14,7 +14,7 @@ exports.ADDRESS_RESTRICTED = [exports.ADDRESS_DISCARD, exports.ADDRESS_SYSTEM, e
|
|
|
14
14
|
const isRestricted = (id) => exports.ADDRESS_RESTRICTED.some(a => id.indexOf(a) > -1) && id !== exports.SEPERATOR;
|
|
15
15
|
exports.isRestricted = isRestricted;
|
|
16
16
|
/**
|
|
17
|
-
* make a
|
|
17
|
+
* make a childaddress given its id and parent address.
|
|
18
18
|
*/
|
|
19
19
|
const make = (parent, id) => {
|
|
20
20
|
id = id.trim();
|
|
@@ -47,6 +47,11 @@ const getParent = (addr) => {
|
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
49
|
exports.getParent = getParent;
|
|
50
|
+
/**
|
|
51
|
+
* isRootLevel tests whether an address is a child of the root actor.
|
|
52
|
+
*/
|
|
53
|
+
const isRootLevel = (addr) => (0, exports.getParent)(addr) === exports.ADDRESS_SYSTEM;
|
|
54
|
+
exports.isRootLevel = isRootLevel;
|
|
50
55
|
/**
|
|
51
56
|
* getId provides the id part of an actor address.
|
|
52
57
|
*/
|
package/lib/actor/address.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/actor/address.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AAClD,wDAAyD;AAE5C,QAAA,SAAS,GAAG,GAAG,CAAC;AAEhB,QAAA,eAAe,GAAG,GAAG,CAAC;AACtB,QAAA,cAAc,GAAG,GAAG,CAAC;AACrB,QAAA,aAAa,GAAG,EAAE,CAAC;AACnB,QAAA,kBAAkB,GAAG,CAAC,uBAAe,EAAE,sBAAc,EAAE,iBAAS,CAAC,CAAC;AAiB/E;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,EAAU,EAAE,EAAE,CACvC,0BAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,iBAAS,CAAC;AAD5D,QAAA,YAAY,gBACgD;AAEzE;;GAEG;AACI,MAAM,IAAI,GAAG,CAAC,MAAe,EAAE,EAAU,EAAW,EAAE;IACzD,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACf,OAAO,MAAM,KAAK,iBAAS,IAAI,MAAM,KAAK,qBAAa;QACnD,CAAC,CAAC,GAAG,MAAM,GAAG,EAAE,EAAE;QAClB,CAAC,CAAC,MAAM,KAAK,sBAAc;YACzB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,GAAG,MAAM,GAAG,iBAAS,GAAG,EAAE,EAAE,CAAC;AACzC,CAAC,CAAC;AAPW,QAAA,IAAI,QAOf;AAEF;;GAEG;AACI,MAAM,SAAS,GAAG,CAAC,IAAa,EAAW,EAAE;IAChD,IACI,IAAI,KAAK,sBAAc;QACvB,IAAI,KAAK,qBAAa;QACtB,IAAI,KAAK,uBAAe;QACxB,IAAI,KAAK,iBAAS,EACpB,CAAC;QACC,OAAO,sBAAc,CAAC;IAC1B,CAAC;SAAM,CAAC;QACJ,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAS,CAAC,CAAC;QAE/B,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAClC,OAAO,iBAAS,CAAC;QACrB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,iBAAS,CAAC,CAAC;YAExD,OAAO,CAAC,KAAK,qBAAa,CAAC,CAAC,CAAC,sBAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;IACL,CAAC;AACL,CAAC,CAAC;AAnBW,QAAA,SAAS,aAmBpB;AAEF;;GAEG;AACI,MAAM,KAAK,GAAG,CAAC,IAAa,EAAU,EAAE,CAC3C,IAAI,KAAK,sBAAc;IACvB,IAAI,KAAK,uBAAe;IACxB,IAAI,KAAK,qBAAa;IACtB,IAAI,KAAK,iBAAS;IACd,CAAC,CAAC,IAAI;IACN,CAAC,CAAC,IAAA,YAAI,EAAC,IAAI,CAAC,KAAK,CAAC,iBAAS,CAAC,CAAC,CAAC;AANzB,QAAA,KAAK,SAMoB;AAEtC;;GAEG;AACI,MAAM,OAAO,GAAG,CAAC,MAAe,EAAE,KAAc,EAAW,EAAE,CAChE,CAAC,MAAM,KAAK,sBAAc,IAAI,KAAK,KAAK,MAAM,CAAC;IAC/C,IAAA,mBAAU,EAAC,KAAK,EAAE,GAAG,MAAM,GAAG,iBAAS,EAAE,CAAC,CAAC;AAFlC,QAAA,OAAO,WAE2B;AAE/C;;GAEG;AACI,MAAM,OAAO,GAAG,CAAC,IAAa,EAAW,EAAE,CAC9C,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC;AADvB,QAAA,OAAO,WACgB"}
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/actor/address.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,13 +12,20 @@ export interface Allocator {
|
|
|
12
12
|
*/
|
|
13
13
|
getThread(target: Address): Maybe<Thread>;
|
|
14
14
|
/**
|
|
15
|
-
* getThreads provides a list of
|
|
15
|
+
* getThreads provides a list of all the Threads that are currently
|
|
16
|
+
* allocated.
|
|
17
|
+
*
|
|
18
|
+
* If targets is supplied, only those Threads will be returned.
|
|
16
19
|
*/
|
|
17
|
-
getThreads(targets
|
|
20
|
+
getThreads(targets?: Address[]): Thread[];
|
|
18
21
|
/**
|
|
19
22
|
* getTemplate provides a Template given an Address.
|
|
20
23
|
*/
|
|
21
24
|
getTemplate(address: Address): Maybe<Template>;
|
|
25
|
+
/**
|
|
26
|
+
* getChildren returns the child threads of a parent thread.
|
|
27
|
+
*/
|
|
28
|
+
getChildren(parent: Thread): Thread[];
|
|
22
29
|
/**
|
|
23
30
|
* allocate a new thread from a Template.
|
|
24
31
|
*/
|
|
@@ -52,8 +52,9 @@ export declare class MapAllocator implements Allocator {
|
|
|
52
52
|
*/
|
|
53
53
|
getEntry(thread: Thread): Maybe<ActorTableEntry>;
|
|
54
54
|
getThread(address: Address): Maybe<Thread>;
|
|
55
|
-
getThreads(targets
|
|
55
|
+
getThreads(targets?: Address[]): Thread[];
|
|
56
56
|
getTemplate(address: Address): Maybe<Template>;
|
|
57
|
+
getChildren(parent: Thread): Thread[];
|
|
57
58
|
allocate(parent: Thread, template: Template): Promise<Address>;
|
|
58
59
|
reallocate(target: Thread): Promise<void>;
|
|
59
60
|
deallocate(target: Thread): Promise<void>;
|
|
@@ -7,7 +7,6 @@ const future_1 = require("@quenk/noni/lib/control/monad/future");
|
|
|
7
7
|
const array_1 = require("@quenk/noni/lib/data/array");
|
|
8
8
|
const lazy_1 = require("@quenk/noni/lib/data/lazy");
|
|
9
9
|
const address_1 = require("../../../address");
|
|
10
|
-
const template_1 = require("../../../template");
|
|
11
10
|
const event_1 = require("../event");
|
|
12
11
|
const factory_1 = require("../thread/factory");
|
|
13
12
|
const MAX_THREAD_KILL_PER_CYCLE = 25;
|
|
@@ -39,8 +38,11 @@ class MapAllocator {
|
|
|
39
38
|
return maybe_1.Maybe.nothing();
|
|
40
39
|
}
|
|
41
40
|
getThreads(targets) {
|
|
41
|
+
let values = this.actors.values();
|
|
42
|
+
if (!targets)
|
|
43
|
+
return Array.from(values).map(entry => entry.thread);
|
|
42
44
|
let hits = [];
|
|
43
|
-
for (let entry of
|
|
45
|
+
for (let entry of values) {
|
|
44
46
|
if (targets.includes(entry.address))
|
|
45
47
|
hits.push(entry.thread);
|
|
46
48
|
}
|
|
@@ -49,6 +51,12 @@ class MapAllocator {
|
|
|
49
51
|
getTemplate(address) {
|
|
50
52
|
return maybe_1.Maybe.fromNullable(this.actors.get(address)).map((entry) => entry.template);
|
|
51
53
|
}
|
|
54
|
+
getChildren(parent) {
|
|
55
|
+
let mentry = this.getEntry(parent);
|
|
56
|
+
if (mentry.isNothing())
|
|
57
|
+
return [];
|
|
58
|
+
return mentry.get().children.map(entry => entry.thread);
|
|
59
|
+
}
|
|
52
60
|
async allocate(parent, template) {
|
|
53
61
|
var _a;
|
|
54
62
|
let platform = (0, lazy_1.evaluate)(this.platform);
|
|
@@ -86,16 +94,10 @@ class MapAllocator {
|
|
|
86
94
|
mparentEntry.map(parentEntry => parentEntry.children.push(entry));
|
|
87
95
|
if (template.group)
|
|
88
96
|
platform.groups.enroll(address, template.group);
|
|
89
|
-
let concernPromise = platform.
|
|
90
|
-
platform.events.dispatchActorEvent(thread, event_1.EVENT_ACTOR_ALLOCATED);
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
platform.events.dispatchActorEvent(thread, event_1.EVENT_ACTOR_STARTED);
|
|
94
|
-
if (template.run) {
|
|
95
|
-
await template.run(thread);
|
|
96
|
-
await this.deallocate(thread);
|
|
97
|
-
}
|
|
98
|
-
});
|
|
97
|
+
let concernPromise = platform.runner.waitForConcern(parent, thread, template.spawnConcern);
|
|
98
|
+
await platform.events.dispatchActorEvent(parent.address, thread.address, event_1.EVENT_ACTOR_ALLOCATED);
|
|
99
|
+
//NOTE: unhandled promise
|
|
100
|
+
platform.runner.runThread(thread);
|
|
99
101
|
await concernPromise;
|
|
100
102
|
return address;
|
|
101
103
|
}
|
|
@@ -124,19 +126,24 @@ class MapAllocator {
|
|
|
124
126
|
let targets = [entry];
|
|
125
127
|
let pending = entry.children.slice();
|
|
126
128
|
while (!(0, array_1.empty)(pending)) {
|
|
127
|
-
let
|
|
128
|
-
pending = [...pending, ...
|
|
129
|
-
targets.unshift(
|
|
129
|
+
let current = pending.shift(); //TODO, do not use shift(), slow
|
|
130
|
+
pending = [...pending, ...current.children];
|
|
131
|
+
targets.unshift(current); //TODO: do not use unshift(), slow
|
|
130
132
|
}
|
|
131
|
-
let
|
|
132
|
-
await future_1.Future.batch((0, array_1.distribute)(targets.map(
|
|
133
|
-
await
|
|
134
|
-
await
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
133
|
+
let { events, collector, groups } = (0, lazy_1.evaluate)(this.platform);
|
|
134
|
+
await future_1.Future.batch((0, array_1.distribute)(targets.map(current => future_1.Future.do(async () => {
|
|
135
|
+
await current.actor.stop();
|
|
136
|
+
await current.thread.stop();
|
|
137
|
+
await collector.unmark(current.thread);
|
|
138
|
+
await events.dispatchActorEvent(current.thread.address, current.thread.address, event_1.EVENT_ACTOR_STOPPED);
|
|
139
|
+
groups.unenroll(current.address);
|
|
140
|
+
this.actors.delete(current.address);
|
|
141
|
+
if (current.parent.isJust())
|
|
142
|
+
await events.dispatchActorEvent(current.parent.get().thread.address, current.thread.address, event_1.EVENT_ACTOR_DEALLOCATED);
|
|
139
143
|
})), MAX_THREAD_KILL_PER_CYCLE));
|
|
144
|
+
// Clean up parent function actors.
|
|
145
|
+
if (entry.parent.isJust())
|
|
146
|
+
await collector.collect(entry.parent.get().thread);
|
|
140
147
|
}
|
|
141
148
|
}
|
|
142
149
|
exports.MapAllocator = MapAllocator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/allocator/map.ts"],"names":[],"mappings":";;;AAAA,2CAA2C;AAE3C,sDAAmD;AACnD,iEAA8D;AAC9D,sDAA+D;AAC/D,oDAA2D;AAE3D,8CAA+D;
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/allocator/map.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export declare const ADDRESS_WILDCARD = "*";
|
|
|
9
9
|
/**
|
|
10
10
|
* Listener is the signature of functions that receive VM events.
|
|
11
11
|
*/
|
|
12
|
-
export type Listener = (event: InternalEvent) => void
|
|
12
|
+
export type Listener = (event: InternalEvent) => Promise<void>;
|
|
13
13
|
/**
|
|
14
14
|
* ListenerMap maps event types to a list of listeners.
|
|
15
15
|
*/
|
|
@@ -51,14 +51,14 @@ export declare class EventDispatcher {
|
|
|
51
51
|
/**
|
|
52
52
|
* dispatchActorEvent dispatches events related to actor lifecycle.
|
|
53
53
|
*/
|
|
54
|
-
dispatchActorEvent(
|
|
54
|
+
dispatchActorEvent(target: Address, actor: Address, type: EventType): Promise<void>;
|
|
55
55
|
/**
|
|
56
56
|
* dispatchMessageEvent dispatches events related to message sending.
|
|
57
57
|
*/
|
|
58
|
-
dispatchMessageEvent(from:
|
|
58
|
+
dispatchMessageEvent(from: Address, type: EventType, to: Address, message: Message): Promise<void>;
|
|
59
59
|
/**
|
|
60
60
|
* dispatch is a generic function that when called dispatchs the supplied
|
|
61
61
|
* event to all installed listeners.
|
|
62
62
|
*/
|
|
63
|
-
dispatch(
|
|
63
|
+
dispatch(target: Address, event: events.InternalEvent): Promise<void>;
|
|
64
64
|
}
|
|
@@ -73,14 +73,14 @@ class EventDispatcher {
|
|
|
73
73
|
*/
|
|
74
74
|
async monitor(thread, type) {
|
|
75
75
|
return new Promise((resolve, reject) => {
|
|
76
|
-
let handler = (event) => {
|
|
76
|
+
let handler = async (event) => {
|
|
77
77
|
this.removeListener(thread.address, events.EVENT_ACTOR_STOPPED, handler);
|
|
78
78
|
this.removeListener(thread.address, type, handler);
|
|
79
79
|
if (event.type === type) {
|
|
80
80
|
resolve(event);
|
|
81
81
|
}
|
|
82
82
|
else if (event.type === events.EVENT_ACTOR_STOPPED) {
|
|
83
|
-
reject(new Error(
|
|
83
|
+
reject(new Error(`[${thread.address}]: ERR_MONITOR_ACTOR_STOPPED`));
|
|
84
84
|
}
|
|
85
85
|
};
|
|
86
86
|
if (type !== events.EVENT_ACTOR_STOPPED)
|
|
@@ -91,32 +91,32 @@ class EventDispatcher {
|
|
|
91
91
|
/**
|
|
92
92
|
* dispatchActorEvent dispatches events related to actor lifecycle.
|
|
93
93
|
*/
|
|
94
|
-
dispatchActorEvent(
|
|
94
|
+
async dispatchActorEvent(target, actor, type) {
|
|
95
95
|
let Cons = eventMap.actor.get(type);
|
|
96
96
|
if (Cons)
|
|
97
|
-
this.dispatch(
|
|
97
|
+
return this.dispatch(target, new Cons(actor));
|
|
98
98
|
}
|
|
99
99
|
/**
|
|
100
100
|
* dispatchMessageEvent dispatches events related to message sending.
|
|
101
101
|
*/
|
|
102
|
-
dispatchMessageEvent(from, type, to, message) {
|
|
102
|
+
async dispatchMessageEvent(from, type, to, message) {
|
|
103
103
|
let Cons = eventMap.message.get(type);
|
|
104
104
|
if (Cons)
|
|
105
|
-
this.dispatch(from, new Cons(from
|
|
105
|
+
return this.dispatch(from, new Cons(from, to, message));
|
|
106
106
|
}
|
|
107
107
|
/**
|
|
108
108
|
* dispatch is a generic function that when called dispatchs the supplied
|
|
109
109
|
* event to all installed listeners.
|
|
110
110
|
*/
|
|
111
|
-
dispatch(
|
|
111
|
+
async dispatch(target, event) {
|
|
112
112
|
var _a, _b, _c, _d;
|
|
113
113
|
(0, lazy_1.evaluate)(this.log).writeEvent(event);
|
|
114
114
|
let listeners = [
|
|
115
|
-
...((_b = (_a = this.maps.get(
|
|
115
|
+
...((_b = (_a = this.maps.get(target)) === null || _a === void 0 ? void 0 : _a.get(event.type)) !== null && _b !== void 0 ? _b : []),
|
|
116
116
|
...((_d = (_c = this.maps.get(exports.ADDRESS_WILDCARD)) === null || _c === void 0 ? void 0 : _c.get(event.type)) !== null && _d !== void 0 ? _d : [])
|
|
117
117
|
];
|
|
118
118
|
for (let listener of listeners)
|
|
119
|
-
listener(event);
|
|
119
|
+
await listener(event);
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
exports.EventDispatcher = EventDispatcher;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/event/dispatcher.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAE7B,oDAA2D;AAQ3D,MAAM,QAAQ,GAAG;IACb,OAAO,EAAE,IAAI,GAAG,CAAC;QACb,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,kBAAkB,CAAC;QACxD,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACvD,CAAC;IACF,KAAK,EAAE,IAAI,GAAG,CAAC;QACX,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,CAAC;QAC1D,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACtD,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACtD,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACtD,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,qBAAqB,CAAC;KACjE,CAAC;CACL,CAAC;AAEW,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAYpC;;;;;;;;;;;;GAYG;AACH,MAAa,eAAe;IACxB,YACW,GAAsB,EACtB,OAAkC,IAAI,GAAG,EAAE;QAD3C,QAAG,GAAH,GAAG,CAAmB;QACtB,SAAI,GAAJ,IAAI,CAAuC;IACnD,CAAC;IAEJ;;;OAGG;IACH,WAAW,CAAC,KAAc,EAAE,IAAe,EAAE,QAAkB;QAC3D,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAC/C,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACvC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,KAAc,EAAE,IAAe,EAAE,QAAkB;QAC9D,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEjC,IAAI,SAAS,EAAE,CAAC;gBACZ,IAAI,YAAY,GAAG,SAAS,CAAC,MAAM,CAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,QAAQ,CAChC,CAAC;gBACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;oBAC9C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,IAAsB;QAChD,OAAO,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzD,IAAI,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/event/dispatcher.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAE7B,oDAA2D;AAQ3D,MAAM,QAAQ,GAAG;IACb,OAAO,EAAE,IAAI,GAAG,CAAC;QACb,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,kBAAkB,CAAC;QACxD,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,gBAAgB,CAAC;KACvD,CAAC;IACF,KAAK,EAAE,IAAI,GAAG,CAAC;QACX,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,CAAC;QAC1D,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACtD,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACtD,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB,CAAC;QACtD,CAAC,MAAM,CAAC,uBAAuB,EAAE,MAAM,CAAC,qBAAqB,CAAC;KACjE,CAAC;CACL,CAAC;AAEW,QAAA,gBAAgB,GAAG,GAAG,CAAC;AAYpC;;;;;;;;;;;;GAYG;AACH,MAAa,eAAe;IACxB,YACW,GAAsB,EACtB,OAAkC,IAAI,GAAG,EAAE;QAD3C,QAAG,GAAH,GAAG,CAAmB;QACtB,SAAI,GAAJ,IAAI,CAAuC;IACnD,CAAC;IAEJ;;;OAGG;IACH,WAAW,CAAC,KAAc,EAAE,IAAe,EAAE,QAAkB;QAC3D,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC;QAC/C,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACvC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,KAAc,EAAE,IAAe,EAAE,QAAkB;QAC9D,IAAI,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,MAAM,EAAE,CAAC;YACT,IAAI,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAEjC,IAAI,SAAS,EAAE,CAAC;gBACZ,IAAI,YAAY,GAAG,SAAS,CAAC,MAAM,CAC/B,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,QAAQ,CAChC,CAAC;gBACF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;oBAC9C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,IAAsB;QAChD,OAAO,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzD,IAAI,OAAO,GAAG,KAAK,EAAE,KAA2B,EAAE,EAAE;gBAChD,IAAI,CAAC,cAAc,CACf,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,mBAAmB,EAC1B,OAAO,CACV,CAAC;gBAEF,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAEnD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACtB,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,mBAAmB,EAAE,CAAC;oBACnD,MAAM,CACF,IAAI,KAAK,CACL,IAAI,MAAM,CAAC,OAAO,8BAA8B,CACnD,CACJ,CAAC;gBACN,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,IAAI,KAAK,MAAM,CAAC,mBAAmB;gBACnC,IAAI,CAAC,WAAW,CACZ,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,mBAAmB,EAC1B,OAAO,CACV,CAAC;YAEN,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAe,EAAE,KAAc,EAAE,IAAe;QACrE,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACtB,IAAa,EACb,IAAe,EACf,EAAW,EACX,OAAgB;QAEhB,IAAI,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAe,EAAE,KAA2B;;QACvD,IAAA,eAAQ,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,SAAS,GAAG;YACZ,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,0CAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;YACjD,GAAG,CAAC,MAAA,MAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAgB,CAAC,0CAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mCAAI,EAAE,CAAC;SAC9D,CAAC;QACF,KAAK,IAAI,QAAQ,IAAI,SAAS;YAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;CACJ;AA9GD,0CA8GC"}
|
|
@@ -77,7 +77,7 @@ export declare class MessageDropEvent extends MessageEvent {
|
|
|
77
77
|
level: LogLevelValue;
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
|
-
* ActorEvent are events related
|
|
80
|
+
* ActorEvent are events related to the lifecycle of an actor.
|
|
81
81
|
*/
|
|
82
82
|
export declare abstract class ActorEvent extends VMEvent {
|
|
83
83
|
address: Address;
|
|
@@ -68,7 +68,7 @@ class MessageDropEvent extends MessageEvent {
|
|
|
68
68
|
}
|
|
69
69
|
exports.MessageDropEvent = MessageDropEvent;
|
|
70
70
|
/**
|
|
71
|
-
* ActorEvent are events related
|
|
71
|
+
* ActorEvent are events related to the lifecycle of an actor.
|
|
72
72
|
*/
|
|
73
73
|
class ActorEvent extends VMEvent {
|
|
74
74
|
constructor(address) {
|
|
@@ -6,12 +6,13 @@ import { ErrorStrategy } from './strategy/error';
|
|
|
6
6
|
import { Thread } from './thread';
|
|
7
7
|
import { GroupMap } from './group';
|
|
8
8
|
import { Scheduler } from './scheduler';
|
|
9
|
-
import { RegistrySet } from './registry';
|
|
10
9
|
import { Allocator } from './allocator';
|
|
11
10
|
import { Api } from '../../api';
|
|
12
11
|
import { LogWritable } from './log/writer';
|
|
13
12
|
import { EventDispatcher } from './event/dispatcher';
|
|
13
|
+
import { ThreadRunner } from './thread/runner';
|
|
14
14
|
import { PartialConf } from './conf';
|
|
15
|
+
import { ThreadCollector } from './thread/collector';
|
|
15
16
|
/**
|
|
16
17
|
* VM is the interface for a virtual machine.
|
|
17
18
|
*
|
|
@@ -23,10 +24,18 @@ export interface VM extends Actor, Thread, Api {
|
|
|
23
24
|
* allocator used to manage thread resources for an actor.
|
|
24
25
|
*/
|
|
25
26
|
allocator: Allocator;
|
|
27
|
+
/**
|
|
28
|
+
* runner used to start up threads.
|
|
29
|
+
*/
|
|
30
|
+
runner: ThreadRunner;
|
|
26
31
|
/**
|
|
27
32
|
* scheduler used for co-ordinating actor thread execution.
|
|
28
33
|
*/
|
|
29
34
|
scheduler: Scheduler;
|
|
35
|
+
/**
|
|
36
|
+
* collector used to remove dead actor threads.
|
|
37
|
+
*/
|
|
38
|
+
collector: ThreadCollector;
|
|
30
39
|
/**
|
|
31
40
|
* errors strategy used to handle errors that occur within the system.
|
|
32
41
|
*/
|
|
@@ -43,10 +52,6 @@ export interface VM extends Actor, Thread, Api {
|
|
|
43
52
|
* Used to publish VM events to interested listeners.
|
|
44
53
|
*/
|
|
45
54
|
events: EventDispatcher;
|
|
46
|
-
/**
|
|
47
|
-
* registry used to store internal VM objects.
|
|
48
|
-
*/
|
|
49
|
-
registry: RegistrySet;
|
|
50
55
|
/**
|
|
51
56
|
* groups holds the mapping of group names to actor addresses.
|
|
52
57
|
*/
|
|
@@ -56,7 +61,7 @@ export interface VM extends Actor, Thread, Api {
|
|
|
56
61
|
*
|
|
57
62
|
* This is used by the threads to communicate.
|
|
58
63
|
*/
|
|
59
|
-
sendMessage(from: Thread, to: Address, msg: Message): void
|
|
64
|
+
sendMessage(from: Thread, to: Address, msg: Message): Promise<void>;
|
|
60
65
|
/**
|
|
61
66
|
* sendKillSignal initiates the deallocation of the actor at the
|
|
62
67
|
* specified address.
|
|
@@ -82,14 +87,16 @@ export interface VM extends Actor, Thread, Api {
|
|
|
82
87
|
export declare class PVM implements VM {
|
|
83
88
|
allocator: Allocator;
|
|
84
89
|
scheduler: Scheduler;
|
|
90
|
+
collector: ThreadCollector;
|
|
85
91
|
errors: ErrorStrategy;
|
|
86
92
|
log: LogWritable;
|
|
87
93
|
events: EventDispatcher;
|
|
88
|
-
|
|
94
|
+
runner: ThreadRunner;
|
|
89
95
|
groups: GroupMap;
|
|
90
96
|
address: string;
|
|
91
97
|
self: string;
|
|
92
|
-
|
|
98
|
+
template: template.Template;
|
|
99
|
+
constructor(allocator?: Allocator, scheduler?: Scheduler, collector?: ThreadCollector, errors?: ErrorStrategy, log?: LogWritable, events?: EventDispatcher, runner?: ThreadRunner, groups?: GroupMap, address?: string, self?: string, template?: template.Template);
|
|
93
100
|
/**
|
|
94
101
|
* create a new PVM instance using the provided configuration.
|
|
95
102
|
*/
|
|
@@ -103,7 +110,7 @@ export declare class PVM implements VM {
|
|
|
103
110
|
raise(err: Err): Promise<void>;
|
|
104
111
|
kill(addr: Address): Promise<void>;
|
|
105
112
|
receive<T>(): Promise<T>;
|
|
106
|
-
sendMessage(from: Thread, to: Address, msg: Message): void
|
|
113
|
+
sendMessage(from: Thread, to: Address, msg: Message): Promise<void>;
|
|
107
114
|
sendKillSignal(src: Thread, target: Address): Promise<void>;
|
|
108
115
|
runTask(thread: Thread, task: () => Promise<void>): Promise<void>;
|
|
109
116
|
}
|
|
@@ -12,10 +12,11 @@ const map_1 = require("./allocator/map");
|
|
|
12
12
|
const error_1 = require("./strategy/error");
|
|
13
13
|
const group_1 = require("./group");
|
|
14
14
|
const scheduler_1 = require("./scheduler");
|
|
15
|
-
const registry_1 = require("./registry");
|
|
16
15
|
const writer_1 = require("./log/writer");
|
|
17
16
|
const dispatcher_1 = require("./event/dispatcher");
|
|
17
|
+
const runner_1 = require("./thread/runner");
|
|
18
18
|
const log_1 = require("./log");
|
|
19
|
+
const collector_1 = require("./thread/collector");
|
|
19
20
|
/**
|
|
20
21
|
* PVM (Potoo Virtual Machine) is a JavaScript implemented virtual machine that
|
|
21
22
|
* functions as a message delivery system between target actors.
|
|
@@ -25,16 +26,18 @@ const log_1 = require("./log");
|
|
|
25
26
|
* platform and individual actor implementations.
|
|
26
27
|
*/
|
|
27
28
|
class PVM {
|
|
28
|
-
constructor(allocator = new map_1.MapAllocator(() => this), scheduler = new scheduler_1.Scheduler(), errors = new error_1.SupervisorErrorStrategy(allocator), log = new writer_1.LogWriter(console), events = new dispatcher_1.EventDispatcher(log),
|
|
29
|
+
constructor(allocator = new map_1.MapAllocator(() => this), scheduler = new scheduler_1.Scheduler(), collector = new collector_1.ThreadCollector(() => this), errors = new error_1.SupervisorErrorStrategy(allocator), log = new writer_1.LogWriter(console), events = new dispatcher_1.EventDispatcher(log), runner = new runner_1.ThreadRunner(() => this), groups = new group_1.GroupMap(), address = address_1.ADDRESS_SYSTEM, self = address_1.ADDRESS_SYSTEM, template = { create: () => this }) {
|
|
29
30
|
this.allocator = allocator;
|
|
30
31
|
this.scheduler = scheduler;
|
|
32
|
+
this.collector = collector;
|
|
31
33
|
this.errors = errors;
|
|
32
34
|
this.log = log;
|
|
33
35
|
this.events = events;
|
|
34
|
-
this.
|
|
36
|
+
this.runner = runner;
|
|
35
37
|
this.groups = groups;
|
|
36
38
|
this.address = address;
|
|
37
39
|
this.self = self;
|
|
40
|
+
this.template = template;
|
|
38
41
|
}
|
|
39
42
|
/**
|
|
40
43
|
* create a new PVM instance using the provided configuration.
|
|
@@ -47,15 +50,20 @@ class PVM {
|
|
|
47
50
|
let vm;
|
|
48
51
|
let allocator = new map_1.MapAllocator(() => vm);
|
|
49
52
|
let log = new writer_1.LogWriter(config.log.sink, (0, log_1.toLogLevelValue)(config.log.level));
|
|
50
|
-
vm = new PVM(allocator, new scheduler_1.Scheduler(), new error_1.SupervisorErrorStrategy(allocator), log, new dispatcher_1.EventDispatcher(log), new
|
|
53
|
+
vm = new PVM(allocator, new scheduler_1.Scheduler(), new collector_1.ThreadCollector(() => vm), new error_1.SupervisorErrorStrategy(allocator), log, new dispatcher_1.EventDispatcher(log), new runner_1.ThreadRunner(() => vm), new group_1.GroupMap());
|
|
51
54
|
return vm;
|
|
52
55
|
}
|
|
53
56
|
// Actor
|
|
54
57
|
async start() { }
|
|
55
58
|
//TODO: events.OnRootMessage.dispatch();
|
|
56
59
|
async notify() { }
|
|
57
|
-
|
|
58
|
-
|
|
60
|
+
async stop() {
|
|
61
|
+
let threads = this.allocator.getThreads();
|
|
62
|
+
for (let thread of threads) {
|
|
63
|
+
if ((0, address_1.isRootLevel)(thread.address))
|
|
64
|
+
await this.allocator.deallocate(thread);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
59
67
|
// Api
|
|
60
68
|
get vm() {
|
|
61
69
|
return this;
|
|
@@ -76,16 +84,16 @@ class PVM {
|
|
|
76
84
|
return future_1.Future.raise(new Error('Not implemented'));
|
|
77
85
|
}
|
|
78
86
|
// Platform
|
|
79
|
-
sendMessage(from, to, msg) {
|
|
87
|
+
async sendMessage(from, to, msg) {
|
|
80
88
|
let targets = (0, address_1.isGroup)(to) ? this.groups.getMembers(to) : [to];
|
|
81
89
|
let threads = this.allocator.getThreads(targets);
|
|
82
90
|
let missing = (0, array_1.diff)(targets, threads.map(t => t.address));
|
|
83
91
|
if (!(0, array_1.empty)(missing)) {
|
|
84
92
|
for (let address of missing)
|
|
85
|
-
this.events.dispatchMessageEvent(from, events.EVENT_MESSAGE_BOUNCE, address, msg);
|
|
93
|
+
await this.events.dispatchMessageEvent(from.address, events.EVENT_MESSAGE_BOUNCE, address, msg);
|
|
86
94
|
}
|
|
87
95
|
for (let thread of threads) {
|
|
88
|
-
this.events.dispatchMessageEvent(from, events.EVENT_MESSGAE_SEND, to, msg);
|
|
96
|
+
await this.events.dispatchMessageEvent(from.address, events.EVENT_MESSGAE_SEND, to, msg);
|
|
89
97
|
thread.notify(msg).catch(err => thread.raise(err));
|
|
90
98
|
}
|
|
91
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actor/system/vm/index.ts"],"names":[],"mappings":";;;AACA,0CAA0C;AAC1C,kCAAkC;AAGlC,iEAA8D;AAC9D,sDAAyD;AACzD,wDAAoD;AAEpD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actor/system/vm/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Err } from '@quenk/noni/lib/control/err';
|
|
2
2
|
import { Address } from '../../../address';
|
|
3
|
-
import { TypeInfo } from '../script/info';
|
|
4
3
|
import { Thread } from '../thread';
|
|
5
4
|
/**
|
|
6
5
|
* ErrorClass
|
|
@@ -103,47 +102,6 @@ export declare class UnknownAddressErr extends ErrorClass {
|
|
|
103
102
|
actor: string;
|
|
104
103
|
constructor(actor: string);
|
|
105
104
|
}
|
|
106
|
-
/**
|
|
107
|
-
* MissingSymbolErr
|
|
108
|
-
*/
|
|
109
|
-
export declare class MissingSymbolErr extends ErrorClass {
|
|
110
|
-
index: number;
|
|
111
|
-
constructor(index: number);
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* IntegerOverflowErr
|
|
115
|
-
*/
|
|
116
|
-
export declare class IntegerOverflowErr extends ErrorClass {
|
|
117
|
-
constructor();
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* StackEmptyErr
|
|
121
|
-
*/
|
|
122
|
-
export declare class StackEmptyErr extends ErrorClass {
|
|
123
|
-
constructor();
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* InvalidPropertyIndex
|
|
127
|
-
*/
|
|
128
|
-
export declare class InvalidPropertyIndex extends ErrorClass {
|
|
129
|
-
cons: TypeInfo;
|
|
130
|
-
idx: number;
|
|
131
|
-
constructor(cons: TypeInfo, idx: number);
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* MissingInfoErr
|
|
135
|
-
*/
|
|
136
|
-
export declare class MissingInfoErr extends ErrorClass {
|
|
137
|
-
idx: number;
|
|
138
|
-
constructor(idx: number);
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* InvalidConstructorErr
|
|
142
|
-
*/
|
|
143
|
-
export declare class InvalidConstructorErr extends ErrorClass {
|
|
144
|
-
name: string;
|
|
145
|
-
constructor(name: string);
|
|
146
|
-
}
|
|
147
105
|
/**
|
|
148
106
|
* InvalidFunctionErr
|
|
149
107
|
*/
|