@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.
Files changed (74) hide show
  1. package/lib/actor/address.d.ts +5 -1
  2. package/lib/actor/address.js +7 -2
  3. package/lib/actor/address.js.map +1 -1
  4. package/lib/actor/system/vm/allocator/index.d.ts +9 -2
  5. package/lib/actor/system/vm/allocator/map.d.ts +2 -1
  6. package/lib/actor/system/vm/allocator/map.js +30 -23
  7. package/lib/actor/system/vm/allocator/map.js.map +1 -1
  8. package/lib/actor/system/vm/event/dispatcher.d.ts +4 -4
  9. package/lib/actor/system/vm/event/dispatcher.js +9 -9
  10. package/lib/actor/system/vm/event/dispatcher.js.map +1 -1
  11. package/lib/actor/system/vm/event/index.d.ts +1 -1
  12. package/lib/actor/system/vm/event/index.js +1 -1
  13. package/lib/actor/system/vm/index.d.ts +16 -9
  14. package/lib/actor/system/vm/index.js +17 -9
  15. package/lib/actor/system/vm/index.js.map +1 -1
  16. package/lib/actor/system/vm/runtime/error.d.ts +0 -42
  17. package/lib/actor/system/vm/runtime/error.js +1 -61
  18. package/lib/actor/system/vm/runtime/error.js.map +1 -1
  19. package/lib/actor/system/vm/thread/collector.d.ts +35 -0
  20. package/lib/actor/system/vm/thread/collector.js +52 -0
  21. package/lib/actor/system/vm/thread/collector.js.map +1 -0
  22. package/lib/actor/system/vm/thread/factory.js +2 -2
  23. package/lib/actor/system/vm/thread/factory.js.map +1 -1
  24. package/lib/actor/system/vm/thread/index.d.ts +5 -0
  25. package/lib/actor/system/vm/thread/index.js.map +1 -1
  26. package/lib/actor/system/vm/thread/process.d.ts +4 -2
  27. package/lib/actor/system/vm/thread/process.js +4 -3
  28. package/lib/actor/system/vm/thread/process.js.map +1 -1
  29. package/lib/actor/system/vm/thread/runner.d.ts +31 -0
  30. package/lib/actor/system/vm/thread/runner.js +60 -0
  31. package/lib/actor/system/vm/thread/runner.js.map +1 -0
  32. package/lib/actor/system/vm/thread/shared/js.d.ts +4 -3
  33. package/lib/actor/system/vm/thread/shared/js.js +18 -6
  34. package/lib/actor/system/vm/thread/shared/js.js.map +1 -1
  35. package/lib/actor/template.d.ts +0 -5
  36. package/lib/actor/template.js +1 -13
  37. package/lib/actor/template.js.map +1 -1
  38. package/package.json +1 -1
  39. package/lib/actor/system/vm/frame.d.ts +0 -228
  40. package/lib/actor/system/vm/frame.js +0 -233
  41. package/lib/actor/system/vm/frame.js.map +0 -1
  42. package/lib/actor/system/vm/object/foreign.d.ts +0 -9
  43. package/lib/actor/system/vm/object/foreign.js +0 -13
  44. package/lib/actor/system/vm/object/foreign.js.map +0 -1
  45. package/lib/actor/system/vm/object/index.d.ts +0 -5
  46. package/lib/actor/system/vm/object/index.js +0 -3
  47. package/lib/actor/system/vm/object/index.js.map +0 -1
  48. package/lib/actor/system/vm/object/list.d.ts +0 -8
  49. package/lib/actor/system/vm/object/list.js +0 -12
  50. package/lib/actor/system/vm/object/list.js.map +0 -1
  51. package/lib/actor/system/vm/op/actor.d.ts +0 -69
  52. package/lib/actor/system/vm/op/actor.js +0 -118
  53. package/lib/actor/system/vm/op/actor.js.map +0 -1
  54. package/lib/actor/system/vm/op/base.d.ts +0 -142
  55. package/lib/actor/system/vm/op/base.js +0 -242
  56. package/lib/actor/system/vm/op/base.js.map +0 -1
  57. package/lib/actor/system/vm/op/index.d.ts +0 -106
  58. package/lib/actor/system/vm/op/index.js +0 -232
  59. package/lib/actor/system/vm/op/index.js.map +0 -1
  60. package/lib/actor/system/vm/op/object.d.ts +0 -31
  61. package/lib/actor/system/vm/op/object.js +0 -78
  62. package/lib/actor/system/vm/op/object.js.map +0 -1
  63. package/lib/actor/system/vm/registry.d.ts +0 -126
  64. package/lib/actor/system/vm/registry.js +0 -191
  65. package/lib/actor/system/vm/registry.js.map +0 -1
  66. package/lib/actor/system/vm/script/index.d.ts +0 -49
  67. package/lib/actor/system/vm/script/index.js +0 -29
  68. package/lib/actor/system/vm/script/index.js.map +0 -1
  69. package/lib/actor/system/vm/script/info.d.ts +0 -279
  70. package/lib/actor/system/vm/script/info.js +0 -256
  71. package/lib/actor/system/vm/script/info.js.map +0 -1
  72. package/lib/actor/system/vm/type.d.ts +0 -90
  73. package/lib/actor/system/vm/type.js +0 -29
  74. package/lib/actor/system/vm/type.js.map +0 -1
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ActorTerminatedErr = exports.InvalidThreadErr = exports.UnknownFunErr = exports.UnknownInstanceErr = exports.InvalidFunctionErr = exports.InvalidConstructorErr = exports.MissingInfoErr = exports.InvalidPropertyIndex = exports.StackEmptyErr = exports.IntegerOverflowErr = exports.MissingSymbolErr = exports.UnknownAddressErr = exports.EmptyMailboxErr = exports.NoMailboxErr = exports.NoReceiverErr = exports.IllegalStopErr = exports.UnexpectedDataType = exports.NullPointerErr = exports.JumpOutOfBoundsErr = exports.NullFunctionPointerErr = exports.NullTemplatePointerErr = exports.DuplicateAddressErr = exports.UnknownParentAddressErr = exports.InvalidIdErr = exports.ErrorClass = void 0;
3
+ exports.ActorTerminatedErr = exports.InvalidThreadErr = exports.UnknownFunErr = exports.UnknownInstanceErr = exports.InvalidFunctionErr = exports.UnknownAddressErr = exports.EmptyMailboxErr = exports.NoMailboxErr = exports.NoReceiverErr = exports.IllegalStopErr = exports.UnexpectedDataType = exports.NullPointerErr = exports.JumpOutOfBoundsErr = exports.NullFunctionPointerErr = exports.NullTemplatePointerErr = exports.DuplicateAddressErr = exports.UnknownParentAddressErr = exports.InvalidIdErr = exports.ErrorClass = void 0;
4
4
  const address_1 = require("../../../address");
5
- const frame_1 = require("../frame");
6
5
  /**
7
6
  * ErrorClass
8
7
  */
@@ -146,65 +145,6 @@ class UnknownAddressErr extends ErrorClass {
146
145
  }
147
146
  }
148
147
  exports.UnknownAddressErr = UnknownAddressErr;
149
- /**
150
- * MissingSymbolErr
151
- */
152
- class MissingSymbolErr extends ErrorClass {
153
- constructor(index) {
154
- super(`Cannot locate symbol at index 0x${index.toString(16)}`);
155
- this.index = index;
156
- }
157
- }
158
- exports.MissingSymbolErr = MissingSymbolErr;
159
- /**
160
- * IntegerOverflowErr
161
- */
162
- class IntegerOverflowErr extends ErrorClass {
163
- constructor() {
164
- super(`DATA_MAX_SAFE_UINT32=${frame_1.DATA_MAX_SAFE_UINT32}`);
165
- }
166
- }
167
- exports.IntegerOverflowErr = IntegerOverflowErr;
168
- /**
169
- * StackEmptyErr
170
- */
171
- class StackEmptyErr extends ErrorClass {
172
- constructor() {
173
- super('Stack is empty.');
174
- }
175
- }
176
- exports.StackEmptyErr = StackEmptyErr;
177
- /**
178
- * InvalidPropertyIndex
179
- */
180
- class InvalidPropertyIndex extends ErrorClass {
181
- constructor(cons, idx) {
182
- super(`Constructor: ${cons.name}, index: ${idx}`);
183
- this.cons = cons;
184
- this.idx = idx;
185
- }
186
- }
187
- exports.InvalidPropertyIndex = InvalidPropertyIndex;
188
- /**
189
- * MissingInfoErr
190
- */
191
- class MissingInfoErr extends ErrorClass {
192
- constructor(idx) {
193
- super(`No info object index: ${idx}!`);
194
- this.idx = idx;
195
- }
196
- }
197
- exports.MissingInfoErr = MissingInfoErr;
198
- /**
199
- * InvalidConstructorErr
200
- */
201
- class InvalidConstructorErr extends ErrorClass {
202
- constructor(name) {
203
- super(`Named object "${name}" cannot be used as a constructor!`);
204
- this.name = name;
205
- }
206
- }
207
- exports.InvalidConstructorErr = InvalidConstructorErr;
208
148
  /**
209
149
  * InvalidFunctionErr
210
150
  */
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/runtime/error.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/runtime/error.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { Lazy } from '@quenk/noni/lib/data/lazy';
2
+ import { PVM } from '..';
3
+ import { Thread } from '.';
4
+ /**
5
+ * ThreadCollector is used to automatically deallocate dead threads from the
6
+ * system.
7
+ *
8
+ * This applies to function actors which are deallocated automatically after t
9
+ * hey execute. However, this deallocation is delayed until all child threads
10
+ * have also been deallocated for the actor.
11
+ */
12
+ export declare class ThreadCollector {
13
+ vm: Lazy<PVM>;
14
+ threads: Set<Thread>;
15
+ constructor(vm: Lazy<PVM>, threads?: Set<Thread>);
16
+ /**
17
+ * mark a thread for collection.
18
+ *
19
+ * This assumes the thread is a function actor.
20
+ */
21
+ mark(thread: Thread): void;
22
+ /**
23
+ * unmark a thread for collection.
24
+ *
25
+ * This must be called when a thread has been deallocated regardless of
26
+ * method to ensure it does not linger in the collector.
27
+ */
28
+ unmark(thread: Thread): void;
29
+ /**
30
+ * collectr on a Thread.
31
+ *
32
+ * This deallocates the thread if it has no children.
33
+ */
34
+ collect(thread: Thread): Promise<void>;
35
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThreadCollector = void 0;
4
+ const array_1 = require("@quenk/noni/lib/data/array");
5
+ const lazy_1 = require("@quenk/noni/lib/data/lazy");
6
+ /**
7
+ * ThreadCollector is used to automatically deallocate dead threads from the
8
+ * system.
9
+ *
10
+ * This applies to function actors which are deallocated automatically after t
11
+ * hey execute. However, this deallocation is delayed until all child threads
12
+ * have also been deallocated for the actor.
13
+ */
14
+ class ThreadCollector {
15
+ constructor(vm, threads = new Set()) {
16
+ this.vm = vm;
17
+ this.threads = threads;
18
+ }
19
+ /**
20
+ * mark a thread for collection.
21
+ *
22
+ * This assumes the thread is a function actor.
23
+ */
24
+ mark(thread) {
25
+ this.threads.add(thread);
26
+ }
27
+ /**
28
+ * unmark a thread for collection.
29
+ *
30
+ * This must be called when a thread has been deallocated regardless of
31
+ * method to ensure it does not linger in the collector.
32
+ */
33
+ unmark(thread) {
34
+ this.threads.delete(thread);
35
+ }
36
+ /**
37
+ * collectr on a Thread.
38
+ *
39
+ * This deallocates the thread if it has no children.
40
+ */
41
+ async collect(thread) {
42
+ if (!this.threads.has(thread))
43
+ return;
44
+ let { allocator } = (0, lazy_1.evaluate)(this.vm);
45
+ if ((0, array_1.empty)(allocator.getChildren(thread))) {
46
+ this.unmark(thread);
47
+ await allocator.deallocate(thread);
48
+ }
49
+ }
50
+ }
51
+ exports.ThreadCollector = ThreadCollector;
52
+ //# sourceMappingURL=collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/thread/collector.ts"],"names":[],"mappings":";;;AAAA,sDAAmD;AACnD,oDAA2D;AAK3D;;;;;;;GAOG;AACH,MAAa,eAAe;IACxB,YACW,EAAa,EACb,UAAuB,IAAI,GAAG,EAAE;QADhC,OAAE,GAAF,EAAE,CAAW;QACb,YAAO,GAAP,OAAO,CAAyB;IACxC,CAAC;IAEJ;;;;OAIG;IACH,IAAI,CAAC,MAAc;QACf,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,MAAc;QACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc;QACxB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO;QAEtC,IAAI,EAAE,SAAS,EAAE,GAAG,IAAA,eAAQ,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEtC,IAAI,IAAA,aAAK,EAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpB,MAAM,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;IACL,CAAC;CACJ;AAxCD,0CAwCC"}
@@ -14,8 +14,8 @@ class ThreadFactory {
14
14
  */
15
15
  static create(vm, address, template) {
16
16
  if ((0, template_1.isProcessTemplate)(template))
17
- return process_1.ProcessThread.create(vm, address, template.script);
18
- return new js_1.JSThread(vm, address);
17
+ return process_1.ProcessThread.create(vm, template, address, template.script);
18
+ return new js_1.JSThread(vm, template, address);
19
19
  }
20
20
  }
21
21
  exports.ThreadFactory = ThreadFactory;
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/thread/factory.ts"],"names":[],"mappings":";;;AACA,gDAI2B;AAE3B,oCAAuC;AACvC,uCAA0C;AAE1C;;;GAGG;AACH,MAAa,aAAa;IACtB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,EAAM,EAAE,OAAgB,EAAE,QAAkB;QACtD,IAAI,IAAA,4BAAiB,EAAC,QAAQ,CAAC;YAC3B,OAAO,uBAAa,CAAC,MAAM,CACvB,EAAE,EACF,OAAO,EACW,QAAS,CAAC,MAAM,CACrC,CAAC;QAEN,OAAO,IAAI,aAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;CACJ;AAdD,sCAcC"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/thread/factory.ts"],"names":[],"mappings":";;;AACA,gDAI2B;AAE3B,oCAAuC;AACvC,uCAA0C;AAE1C;;;GAGG;AACH,MAAa,aAAa;IACtB;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,EAAM,EAAE,OAAgB,EAAE,QAAkB;QACtD,IAAI,IAAA,4BAAiB,EAAC,QAAQ,CAAC;YAC3B,OAAO,uBAAa,CAAC,MAAM,CACvB,EAAE,EACF,QAAQ,EACR,OAAO,EACW,QAAS,CAAC,MAAM,CACrC,CAAC;QAEN,OAAO,IAAI,aAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;CACJ;AAfD,sCAeC"}
@@ -1,6 +1,7 @@
1
1
  import { Err } from '@quenk/noni/lib/control/err';
2
2
  import { Address } from '../../../address';
3
3
  import { Actor } from '../../..';
4
+ import { Template } from '../../../template';
4
5
  export declare const ERR_THREAD_INVALID = "ERR_THREAD_INVALID";
5
6
  /**
6
7
  * Thread serves as the execution context for a single actor.
@@ -14,6 +15,10 @@ export declare const ERR_THREAD_INVALID = "ERR_THREAD_INVALID";
14
15
  * VM used to make managing actors easier.
15
16
  */
16
17
  export interface Thread extends Actor {
18
+ /**
19
+ * template used to configure the Thread.
20
+ */
21
+ template: Template;
17
22
  /**
18
23
  * address for the Thread (actor) within the system.
19
24
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/thread/index.ts"],"names":[],"mappings":";;;AAKa,QAAA,kBAAkB,GAAG,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/thread/index.ts"],"names":[],"mappings":";;;AAMa,QAAA,kBAAkB,GAAG,oBAAoB,CAAC"}
@@ -5,6 +5,7 @@ import { Address } from '../../../address';
5
5
  import { Message } from '../../..';
6
6
  import { VM } from '../';
7
7
  import { Thread } from '.';
8
+ import { Template } from 'actor/template';
8
9
  export declare const CTRL_MSG_RAISE = 9;
9
10
  export declare const CTRL_MSG_SEND = 1;
10
11
  export declare const CTRL_MSG_DROP = 3;
@@ -16,9 +17,10 @@ export declare const CTRL_MSG_DROP = 3;
16
17
  */
17
18
  export declare class ProcessThread implements Thread {
18
19
  vm: VM;
20
+ template: Template;
19
21
  process: ChildProcess;
20
22
  address: Address;
21
- constructor(vm: VM, process: ChildProcess, address: Address);
23
+ constructor(vm: VM, template: Template, process: ChildProcess, address: Address);
22
24
  /**
23
25
  * create a new ProcessThread instance using the provided script path for
24
26
  * the ChildProcess creation.
@@ -27,7 +29,7 @@ export declare class ProcessThread implements Thread {
27
29
  *
28
30
  * 1. POTOO_ACTOR_ADDRESS The full address of the actor in the parent VM.
29
31
  */
30
- static create(vm: VM, address: Address, script: Path): ProcessThread;
32
+ static create(vm: VM, template: Template, address: Address, script: Path): ProcessThread;
31
33
  notify(msg: Message): Promise<void>;
32
34
  raise(err: Err): Promise<void>;
33
35
  /**
@@ -34,8 +34,9 @@ const shapes = {
34
34
  * concerned.
35
35
  */
36
36
  class ProcessThread {
37
- constructor(vm, process, address) {
37
+ constructor(vm, template, process, address) {
38
38
  this.vm = vm;
39
+ this.template = template;
39
40
  this.process = process;
40
41
  this.address = address;
41
42
  }
@@ -47,11 +48,11 @@ class ProcessThread {
47
48
  *
48
49
  * 1. POTOO_ACTOR_ADDRESS The full address of the actor in the parent VM.
49
50
  */
50
- static create(vm, address, script) {
51
+ static create(vm, template, address, script) {
51
52
  let cp = (0, child_process_1.fork)((0, path_1.resolve)(script), {
52
53
  env: { POTOO_ACTOR_ADDRESS: address }
53
54
  });
54
- let thread = new ProcessThread(vm, cp, address);
55
+ let thread = new ProcessThread(vm, template, cp, address);
55
56
  return thread;
56
57
  }
57
58
  async notify(msg) {
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/thread/process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/thread/process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { Lazy } from '@quenk/noni/lib/data/lazy';
2
+ import { SpawnConcernLevel } from '../../../template';
3
+ import { VM } from '..';
4
+ import { Thread } from '.';
5
+ /**
6
+ * ThreadRunner takes care of starting up actor threads and automatically
7
+ * stopping function actors.
8
+ */
9
+ export declare class ThreadRunner {
10
+ vm: Lazy<VM>;
11
+ constructor(vm: Lazy<VM>);
12
+ /**
13
+ *
14
+ * waitForConcern produces a promise that can be used to wait for a
15
+ * child thread to acheive a desired concern level.
16
+ *
17
+ * Note: This does not pause the parent thread.
18
+ */
19
+ waitForConcern(parent: Thread, child: Thread, level?: SpawnConcernLevel): Promise<import("../event").InternalEvent>;
20
+ /**
21
+ * runThread executes a newly allocated child thread.
22
+ *
23
+ * If the template is a function template, the thread will be
24
+ * deallocated after the function completes.
25
+ *
26
+ * Note: This behaviour is not immediate if the the thread has children.
27
+ * In that case we wait until the child threads have been removed.
28
+ * This will not hinder intentional exits.
29
+ */
30
+ runThread(child: Thread): Promise<void>;
31
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ThreadRunner = void 0;
4
+ const lazy_1 = require("@quenk/noni/lib/data/lazy");
5
+ const template_1 = require("../../../template");
6
+ const event_1 = require("../event");
7
+ const parentEvents = [event_1.EVENT_ACTOR_ALLOCATED, event_1.EVENT_ACTOR_DEALLOCATED];
8
+ const spawnConcerns = {
9
+ [template_1.SPAWN_CONCERN_ALLOCATED]: event_1.EVENT_ACTOR_ALLOCATED,
10
+ [template_1.SPAWN_CONCERN_STARTED]: event_1.EVENT_ACTOR_STARTED,
11
+ [template_1.SPAWN_CONCERN_RECEIVING]: event_1.EVENT_ACTOR_RECEIVE,
12
+ [template_1.SPAWN_CONCERN_STOPPED]: event_1.EVENT_ACTOR_STOPPED
13
+ };
14
+ const spawnConcern2Event = (level) => { var _a; return (_a = spawnConcerns[level]) !== null && _a !== void 0 ? _a : event_1.EVENT_ACTOR_ALLOCATED; };
15
+ /**
16
+ * ThreadRunner takes care of starting up actor threads and automatically
17
+ * stopping function actors.
18
+ */
19
+ class ThreadRunner {
20
+ constructor(vm) {
21
+ this.vm = vm;
22
+ }
23
+ /**
24
+ *
25
+ * waitForConcern produces a promise that can be used to wait for a
26
+ * child thread to acheive a desired concern level.
27
+ *
28
+ * Note: This does not pause the parent thread.
29
+ */
30
+ async waitForConcern(parent, child, level = template_1.SPAWN_CONCERN_ALLOCATED) {
31
+ let { events } = (0, lazy_1.evaluate)(this.vm);
32
+ let evt = spawnConcern2Event(level);
33
+ //NOTE: Do not await here otherwise execution will continue before the
34
+ // listener has been installed resulting in the event being missed.
35
+ return parentEvents.includes(evt)
36
+ ? events.monitor(parent, evt)
37
+ : events.monitor(child, evt);
38
+ }
39
+ /**
40
+ * runThread executes a newly allocated child thread.
41
+ *
42
+ * If the template is a function template, the thread will be
43
+ * deallocated after the function completes.
44
+ *
45
+ * Note: This behaviour is not immediate if the the thread has children.
46
+ * In that case we wait until the child threads have been removed.
47
+ * This will not hinder intentional exits.
48
+ */
49
+ async runThread(child) {
50
+ let { events, collector } = (0, lazy_1.evaluate)(this.vm);
51
+ // Ideally this should be done in the thread itself
52
+ await events.dispatchActorEvent(child.address, child.address, event_1.EVENT_ACTOR_STARTED);
53
+ if (child.template.run)
54
+ collector.mark(child);
55
+ await child.start();
56
+ await collector.collect(child);
57
+ }
58
+ }
59
+ exports.ThreadRunner = ThreadRunner;
60
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/thread/runner.ts"],"names":[],"mappings":";;;AAAA,oDAA2D;AAG3D,gDAO2B;AAC3B,oCAOkB;AAIlB,MAAM,YAAY,GAAG,CAAC,6BAAqB,EAAE,+BAAuB,CAAC,CAAC;AAEtE,MAAM,aAAa,GAAsB;IACrC,CAAC,kCAAuB,CAAC,EAAE,6BAAqB;IAChD,CAAC,gCAAqB,CAAC,EAAE,2BAAmB;IAC5C,CAAC,kCAAuB,CAAC,EAAE,2BAAmB;IAC9C,CAAC,gCAAqB,CAAC,EAAE,2BAAmB;CAC/C,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,KAAwB,EAAE,EAAE,WACpD,OAAA,MAAA,aAAa,CAAC,KAAK,CAAC,mCAAI,6BAAqB,CAAA,EAAA,CAAC;AAElD;;;GAGG;AACH,MAAa,YAAY;IACrB,YAAmB,EAAY;QAAZ,OAAE,GAAF,EAAE,CAAU;IAAG,CAAC;IAEnC;;;;;;OAMG;IACH,KAAK,CAAC,cAAc,CAChB,MAAc,EACd,KAAa,EACb,QAA2B,kCAAuB;QAElD,IAAI,EAAE,MAAM,EAAE,GAAG,IAAA,eAAQ,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnC,IAAI,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAEpC,sEAAsE;QACtE,mEAAmE;QACnE,OAAO,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC;YAC7B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;YAC7B,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,SAAS,CAAC,KAAa;QACzB,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,eAAQ,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE9C,mDAAmD;QACnD,MAAM,MAAM,CAAC,kBAAkB,CAC3B,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,2BAAmB,CACtB,CAAC;QAEF,IAAwB,KAAK,CAAC,QAAS,CAAC,GAAG;YAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnE,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,MAAM,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;CACJ;AAlDD,oCAkDC"}
@@ -1,6 +1,6 @@
1
1
  import { Err } from '@quenk/noni/lib/control/error';
2
2
  import { Case } from '@quenk/noni/lib/control/match/case';
3
- import { Template } from '../../../../template';
3
+ import { SharedTemplate, Spawnable } from '../../../../template';
4
4
  import { Address } from '../../../../address';
5
5
  import { Message } from '../../../..';
6
6
  import { VM } from '../../';
@@ -11,10 +11,11 @@ export declare const ERR_THREAD_INVALID = "ERR_THREAD_INVALID";
11
11
  */
12
12
  export declare class JSThread implements SharedThread {
13
13
  vm: VM;
14
+ template: SharedTemplate;
14
15
  address: Address;
15
16
  mailbox: Message[];
16
17
  state: ThreadState;
17
- constructor(vm: VM, address: Address, mailbox?: Message[], state?: ThreadState);
18
+ constructor(vm: VM, template: SharedTemplate, address: Address, mailbox?: Message[], state?: ThreadState);
18
19
  readonly self: string;
19
20
  _assertValid(): void;
20
21
  isValid(): boolean;
@@ -29,7 +30,7 @@ export declare class JSThread implements SharedThread {
29
30
  */
30
31
  resume(): void;
31
32
  raise(e: Err): Promise<void>;
32
- spawn(tmpl: Template): Promise<Address>;
33
+ spawn(tmpl: Spawnable): Promise<Address>;
33
34
  tell(addr: Address, msg: Message): Promise<void>;
34
35
  receive<T = Message>(cases?: Case<Message, T>[]): Promise<T>;
35
36
  }
@@ -5,18 +5,21 @@ const future_1 = require("@quenk/noni/lib/control/monad/future");
5
5
  const array_1 = require("@quenk/noni/lib/data/array");
6
6
  const case_1 = require("@quenk/noni/lib/control/match/case");
7
7
  const function_1 = require("@quenk/noni/lib/data/function");
8
+ const template_1 = require("../../../../template");
8
9
  const address_1 = require("../../../../address");
9
10
  const scheduler_1 = require("../../scheduler");
10
11
  const _1 = require(".");
11
12
  const event_1 = require("../../event");
13
+ const type_1 = require("@quenk/noni/lib/data/type");
12
14
  const defaultCases = [new case_1.Default(function_1.identity)];
13
15
  exports.ERR_THREAD_INVALID = 'ERR_THREAD_INVALID';
14
16
  /**
15
17
  * JSThread is used by actors that run in the same event loop as the VM.
16
18
  */
17
19
  class JSThread {
18
- constructor(vm, address, mailbox = [], state = _1.ThreadState.IDLE) {
20
+ constructor(vm, template, address, mailbox = [], state = _1.ThreadState.IDLE) {
19
21
  this.vm = vm;
22
+ this.template = template;
20
23
  this.address = address;
21
24
  this.mailbox = mailbox;
22
25
  this.state = state;
@@ -30,7 +33,16 @@ class JSThread {
30
33
  return (this.state !== _1.ThreadState.INVALID &&
31
34
  this.state !== _1.ThreadState.ERROR);
32
35
  }
33
- async start() { }
36
+ async start() {
37
+ let { run } = this.template;
38
+ let { create } = this.template;
39
+ if ((0, type_1.isFunction)(run)) {
40
+ await run(this);
41
+ }
42
+ else if ((0, type_1.isFunction)(create)) {
43
+ await create(this).start();
44
+ }
45
+ }
34
46
  async notify(msg) {
35
47
  this._assertValid();
36
48
  this.mailbox.push(msg);
@@ -51,7 +63,7 @@ class JSThread {
51
63
  die() {
52
64
  this.state = _1.ThreadState.INVALID;
53
65
  this.vm.scheduler.removeTasks(this);
54
- this.vm.events.dispatchActorEvent(this, event_1.EVENT_ACTOR_STOPPED);
66
+ this.vm.events.dispatchActorEvent(this.address, this.address, event_1.EVENT_ACTOR_STOPPED);
55
67
  }
56
68
  /**
57
69
  * resume marks the Thread as ready to run again.
@@ -69,7 +81,7 @@ class JSThread {
69
81
  this._assertValid();
70
82
  let result = await future_1.Future.fromCallback(cb => {
71
83
  this.vm.scheduler.postTask(new scheduler_1.Task(this, cb, async () => {
72
- let address = await this.vm.allocator.allocate(this, tmpl);
84
+ let address = await this.vm.allocator.allocate(this, (0, template_1.fromSpawnable)(tmpl));
73
85
  cb(null, address);
74
86
  }));
75
87
  });
@@ -87,7 +99,7 @@ class JSThread {
87
99
  async receive(cases = []) {
88
100
  this._assertValid();
89
101
  let msg = await future_1.Future.fromCallback(cb => {
90
- this.vm.events.dispatchActorEvent(this, event_1.EVENT_ACTOR_RECEIVE);
102
+ this.vm.events.dispatchActorEvent(this.address, this.address, event_1.EVENT_ACTOR_RECEIVE);
91
103
  let matcher = new case_1.CaseFunction((0, array_1.empty)(cases) ? defaultCases : cases);
92
104
  let task = new scheduler_1.Task(this, cb, async () => {
93
105
  this._assertValid();
@@ -100,7 +112,7 @@ class JSThread {
100
112
  let result = await matcher.apply(msg);
101
113
  return cb(null, result);
102
114
  }
103
- this.vm.events.dispatchMessageEvent(this, event_1.EVENT_MESSAGE_DROPPED, address_1.ADDRESS_DISCARD, msg);
115
+ this.vm.events.dispatchMessageEvent(this.address, event_1.EVENT_MESSAGE_DROPPED, address_1.ADDRESS_DISCARD, msg);
104
116
  }
105
117
  this.state = _1.ThreadState.MSG_WAIT;
106
118
  this.vm.scheduler.postTask(task, true);
@@ -1 +1 @@
1
- {"version":3,"file":"js.js","sourceRoot":"","sources":["../../../../../../src/actor/system/vm/thread/shared/js.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"js.js","sourceRoot":"","sources":["../../../../../../src/actor/system/vm/thread/shared/js.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@ import { Path } from '@quenk/noni/lib/data/record/path';
2
2
  import { Err } from '@quenk/noni/lib/control/error';
3
3
  import { Runtime } from './system/vm/runtime';
4
4
  import { Actor } from './';
5
- import { EventType } from './system/vm/event';
6
5
  export declare const ACTION_RAISE = -1;
7
6
  export declare const ACTION_IGNORE = 0;
8
7
  export declare const ACTION_RESTART = 1;
@@ -151,7 +150,3 @@ export declare const SPAWN_CONCERN_ALLOCATED = "allocated";
151
150
  export declare const SPAWN_CONCERN_STARTED = "started";
152
151
  export declare const SPAWN_CONCERN_RECEIVING = "receiving";
153
152
  export declare const SPAWN_CONCERN_STOPPED = "stopped";
154
- /**
155
- * spawnConcern2Event converts a SpawnConcernLevel to an EventType.
156
- */
157
- export declare const spawnConcern2Event: (level?: SpawnConcernLevel) => EventType;
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.spawnConcern2Event = exports.SPAWN_CONCERN_STOPPED = exports.SPAWN_CONCERN_RECEIVING = exports.SPAWN_CONCERN_STARTED = exports.SPAWN_CONCERN_ALLOCATED = exports.fromSpawnable = exports.isProcessTemplate = exports.ACTION_STOP = exports.ACTION_RESTART = exports.ACTION_IGNORE = exports.ACTION_RAISE = void 0;
3
+ exports.SPAWN_CONCERN_STOPPED = exports.SPAWN_CONCERN_RECEIVING = exports.SPAWN_CONCERN_STARTED = exports.SPAWN_CONCERN_ALLOCATED = exports.fromSpawnable = exports.isProcessTemplate = exports.ACTION_STOP = exports.ACTION_RESTART = exports.ACTION_IGNORE = exports.ACTION_RAISE = void 0;
4
4
  const type_1 = require("@quenk/noni/lib/data/type");
5
- const event_1 = require("./system/vm/event");
6
5
  exports.ACTION_RAISE = -0x1;
7
6
  exports.ACTION_IGNORE = 0x0;
8
7
  exports.ACTION_RESTART = 0x1;
@@ -37,15 +36,4 @@ exports.SPAWN_CONCERN_ALLOCATED = 'allocated';
37
36
  exports.SPAWN_CONCERN_STARTED = 'started';
38
37
  exports.SPAWN_CONCERN_RECEIVING = 'receiving';
39
38
  exports.SPAWN_CONCERN_STOPPED = 'stopped';
40
- const spawnConcerns = {
41
- [exports.SPAWN_CONCERN_ALLOCATED]: event_1.EVENT_ACTOR_ALLOCATED,
42
- [exports.SPAWN_CONCERN_STARTED]: event_1.EVENT_ACTOR_STARTED,
43
- [exports.SPAWN_CONCERN_RECEIVING]: event_1.EVENT_ACTOR_RECEIVE,
44
- [exports.SPAWN_CONCERN_STOPPED]: event_1.EVENT_ACTOR_STOPPED
45
- };
46
- /**
47
- * spawnConcern2Event converts a SpawnConcernLevel to an EventType.
48
- */
49
- const spawnConcern2Event = (level = 'allocated') => { var _a; return (_a = spawnConcerns[level]) !== null && _a !== void 0 ? _a : event_1.EVENT_ACTOR_ALLOCATED; };
50
- exports.spawnConcern2Event = spawnConcern2Event;
51
39
  //# sourceMappingURL=template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/actor/template.ts"],"names":[],"mappings":";;;AAGA,oDAAiE;AAIjE,6CAM2B;AAEd,QAAA,YAAY,GAAG,CAAC,GAAG,CAAC;AACpB,QAAA,aAAa,GAAG,GAAG,CAAC;AACpB,QAAA,cAAc,GAAG,GAAG,CAAC;AACrB,QAAA,WAAW,GAAG,GAAG,CAAC;AAkJ/B,MAAM,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC,WAAW,CAAC;AAEnD,MAAM,eAAe,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,aAAa,CAAC;AAE/E;;GAEG;AACI,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAA2B,EAAE,CACzE,IAAA,eAAQ,EAAmB,IAAK,CAAC,MAAM,CAAC,CAAC;AADhC,QAAA,iBAAiB,qBACe;AAE7C;;;;;;;GAOG;AACI,MAAM,aAAa,GAAG,CAAC,IAAe,EAAY,EAAE;IACvD,IAAI,IAAA,iBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,eAAe,CAAC,IAAI,CAAC;YACxB,CAAC,CAAC,EAAE,GAAG,EAAW,IAAI,EAAE;YACxB,CAAC,CAAC,EAAE,MAAM,EAAc,IAAI,EAAE,CAAC;IACvC,CAAC;SAAM,CAAC;QACJ,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC,CAAC;AARW,QAAA,aAAa,iBAQxB;AAEW,QAAA,uBAAuB,GAAG,WAAW,CAAC;AACtC,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,uBAAuB,GAAG,WAAW,CAAC;AACtC,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAE/C,MAAM,aAAa,GAAsB;IACrC,CAAC,+BAAuB,CAAC,EAAE,6BAAqB;IAChD,CAAC,6BAAqB,CAAC,EAAE,2BAAmB;IAC5C,CAAC,+BAAuB,CAAC,EAAE,2BAAmB;IAC9C,CAAC,6BAAqB,CAAC,EAAE,2BAAmB;CAC/C,CAAC;AAEF;;GAEG;AACI,MAAM,kBAAkB,GAAG,CAC9B,QAA2B,WAAW,EAC7B,EAAE,WAAC,OAAA,MAAA,aAAa,CAAC,KAAK,CAAC,mCAAI,6BAAqB,CAAA,EAAA,CAAC;AAFjD,QAAA,kBAAkB,sBAE+B"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/actor/template.ts"],"names":[],"mappings":";;;AAEA,oDAAiE;AAKpD,QAAA,YAAY,GAAG,CAAC,GAAG,CAAC;AACpB,QAAA,aAAa,GAAG,GAAG,CAAC;AACpB,QAAA,cAAc,GAAG,GAAG,CAAC;AACrB,QAAA,WAAW,GAAG,GAAG,CAAC;AAkJ/B,MAAM,aAAa,GAAG,CAAC,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC,WAAW,CAAC;AAEnD,MAAM,eAAe,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,KAAK,aAAa,CAAC;AAE/E;;GAEG;AACI,MAAM,iBAAiB,GAAG,CAAC,IAAc,EAA2B,EAAE,CACzE,IAAA,eAAQ,EAAmB,IAAK,CAAC,MAAM,CAAC,CAAC;AADhC,QAAA,iBAAiB,qBACe;AAE7C;;;;;;;GAOG;AACI,MAAM,aAAa,GAAG,CAAC,IAAe,EAAY,EAAE;IACvD,IAAI,IAAA,iBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACnB,OAAO,eAAe,CAAC,IAAI,CAAC;YACxB,CAAC,CAAC,EAAE,GAAG,EAAW,IAAI,EAAE;YACxB,CAAC,CAAC,EAAE,MAAM,EAAc,IAAI,EAAE,CAAC;IACvC,CAAC;SAAM,CAAC;QACJ,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC,CAAC;AARW,QAAA,aAAa,iBAQxB;AAEW,QAAA,uBAAuB,GAAG,WAAW,CAAC;AACtC,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAClC,QAAA,uBAAuB,GAAG,WAAW,CAAC;AACtC,QAAA,qBAAqB,GAAG,SAAS,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenk/potoo",
3
- "version": "4.0.12",
3
+ "version": "4.1.2",
4
4
  "description": "Message passing virtual machine.",
5
5
  "main": "lib/index.js",
6
6
  "types": "./lib/index.d.ts",