@quenk/potoo 4.1.13 → 4.1.15

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.
@@ -1,3 +1,5 @@
1
+ import { Err } from '@quenk/noni/lib/control/err';
2
+ import { TrapAction } from '../../template';
1
3
  import { LogSink } from './log';
2
4
  /**
3
5
  * PartialConf allows only some values to be specified in a Conf object
@@ -5,6 +7,7 @@ import { LogSink } from './log';
5
7
  */
6
8
  export interface PartialConf {
7
9
  log?: Partial<Conf['log']>;
10
+ trap?: Conf['trap'];
8
11
  }
9
12
  /**
10
13
  * Conf objects are used to create and configue various aspects of thhe VM.
@@ -27,4 +30,8 @@ export interface Conf {
27
30
  */
28
31
  sink: LogSink;
29
32
  };
33
+ /**
34
+ * trap if specified is used as the default trap handler for all actors.
35
+ */
36
+ trap?: (e: Err) => TrapAction;
30
37
  }
@@ -102,7 +102,7 @@ export declare class PVM implements VM {
102
102
  */
103
103
  static create(conf?: PartialConf): PVM;
104
104
  start(): Promise<void>;
105
- notify(): Promise<void>;
105
+ notify(msg: Message): Promise<void>;
106
106
  stop(): Promise<void>;
107
107
  get vm(): this;
108
108
  spawn(tmpl: template.Spawnable): Promise<Address>;
@@ -50,13 +50,14 @@ class PVM {
50
50
  let vm;
51
51
  let allocator = new map_1.MapAllocator(() => vm);
52
52
  let log = new writer_1.LogWriter(config.log.sink, (0, log_1.toLogLevelValue)(config.log.level));
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());
53
+ vm = new PVM(allocator, new scheduler_1.Scheduler(), new collector_1.ThreadCollector(() => vm), new error_1.SupervisorErrorStrategy(allocator, conf.trap), log, new dispatcher_1.EventDispatcher(log), new runner_1.ThreadRunner(() => vm), new group_1.GroupMap());
54
54
  return vm;
55
55
  }
56
56
  // Actor
57
57
  async start() { }
58
- //TODO: events.OnRootMessage.dispatch();
59
- async notify() { }
58
+ async notify(msg) {
59
+ await this.events.dispatchMessageEvent(this.address, events.EVENT_MESSAGE_CONSUMED, this.address, msg);
60
+ }
60
61
  async stop() {
61
62
  let threads = this.allocator.getThreads();
62
63
  for (let thread of threads) {
@@ -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,2CAMuB;AACvB,6CAA+C;AAE/C,yCAA+C;AAC/C,4CAA0E;AAE1E,mCAAmC;AACnC,2CAAwC;AAGxC,yCAAsD;AACtD,mDAAqD;AACrD,4CAA+C;AAE/C,+BAAwC;AACxC,kDAAqD;AA4ErD;;;;;;;GAOG;AACH,MAAa,GAAG;IACZ,YACW,YAAuB,IAAI,kBAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACnD,YAAuB,IAAI,qBAAS,EAAE,EACtC,YAA6B,IAAI,2BAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAC5D,SAAwB,IAAI,+BAAuB,CAAC,SAAS,CAAC,EAC9D,MAAmB,IAAI,kBAAS,CAAC,OAAO,CAAC,EACzC,SAAS,IAAI,4BAAe,CAAC,GAAG,CAAC,EACjC,SAAuB,IAAI,qBAAY,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EACnD,SAAmB,IAAI,gBAAQ,EAAE,EACjC,UAAU,wBAAc,EACxB,OAAO,wBAAc,EACrB,WAA8B,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE;QAVpD,cAAS,GAAT,SAAS,CAA0C;QACnD,cAAS,GAAT,SAAS,CAA6B;QACtC,cAAS,GAAT,SAAS,CAAmD;QAC5D,WAAM,GAAN,MAAM,CAAwD;QAC9D,QAAG,GAAH,GAAG,CAAsC;QACzC,WAAM,GAAN,MAAM,CAA2B;QACjC,WAAM,GAAN,MAAM,CAA6C;QACnD,WAAM,GAAN,MAAM,CAA2B;QACjC,YAAO,GAAP,OAAO,CAAiB;QACxB,SAAI,GAAJ,IAAI,CAAiB;QACrB,aAAQ,GAAR,QAAQ,CAA4C;IAC5D,CAAC;IAEJ;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,OAAoB,EAAE;;QAChC,IAAI,MAAM,GAAS;YACf,GAAG,EAAE,IAAA,cAAK,EAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,MAAA,IAAI,CAAC,GAAG,mCAAI,EAAE,CAAC;SAC/D,CAAC;QAEF,IAAI,EAAO,CAAC;QAEZ,IAAI,SAAS,GAAG,IAAI,kBAAY,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,GAAG,GAAG,IAAI,kBAAS,CACnB,MAAM,CAAC,GAAG,CAAC,IAAI,EACf,IAAA,qBAAe,EAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CACpC,CAAC;QAEF,EAAE,GAAG,IAAI,GAAG,CACR,SAAS,EACT,IAAI,qBAAS,EAAE,EACf,IAAI,2BAAe,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAC7B,IAAI,+BAAuB,CAAC,SAAS,CAAC,EACtC,GAAG,EACH,IAAI,4BAAe,CAAC,GAAG,CAAC,EACxB,IAAI,qBAAY,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAC1B,IAAI,gBAAQ,EAAE,CACjB,CAAC;QACF,OAAO,EAAE,CAAC;IACd,CAAC;IAED,QAAQ;IAER,KAAK,CAAC,KAAK,KAAI,CAAC;IAEhB,wCAAwC;IACxC,KAAK,CAAC,MAAM,KAAI,CAAC;IAEjB,KAAK,CAAC,IAAI;QACN,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;QAC1C,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,IAAA,qBAAW,EAAC,MAAM,CAAC,OAAO,CAAC;gBAC3B,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;IAED,MAAM;IAEN,IAAI,EAAE;QACF,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAwB;QAChC,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAW,EAAE,GAAY;QAChC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAQ;QAChB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAa;QACpB,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,OAAO;QACT,OAAmB,eAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,WAAW;IAEX,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,EAAW,EAAE,GAAY;QACrD,IAAI,OAAO,GAAG,IAAA,iBAAO,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAE9D,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAEjD,IAAI,OAAO,GAAG,IAAA,YAAI,EACd,OAAO,EACP,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAC9B,CAAC;QAEF,IAAI,CAAC,IAAA,aAAK,EAAC,OAAO,CAAC,EAAE,CAAC;YAClB,KAAK,IAAI,OAAO,IAAI,OAAO;gBACvB,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAClC,IAAI,CAAC,OAAO,EACZ,MAAM,CAAC,oBAAoB,EAC3B,OAAO,EACP,GAAG,CACN,CAAC;QACV,CAAC;QAED,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAClC,IAAI,CAAC,OAAO,EACZ,MAAM,CAAC,kBAAkB,EACzB,EAAE,EACF,GAAG,CACN,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,MAAe;QAC7C,IAAI,GAAG,CAAC,OAAO,KAAK,MAAM,IAAI,CAAC,IAAA,iBAAO,EAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YAC1D,OAAO,eAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAErD,IAAI,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,IAAyB;QAC7C,OAAO,eAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;CACJ;AAvID,kBAuIC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actor/system/vm/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Err } from '@quenk/noni/lib/control/err';
2
2
  import { Thread } from '../thread';
3
3
  import { Allocator } from '../allocator';
4
+ import { TrapFunc } from '../../../template';
4
5
  /**
5
6
  * ErrorStrategy is the interface used by threads to communicate errors that
6
7
  * have occurred within the system.
@@ -23,6 +24,7 @@ export interface ErrorStrategy {
23
24
  */
24
25
  export declare class SupervisorErrorStrategy implements ErrorStrategy {
25
26
  allocator: Allocator;
26
- constructor(allocator: Allocator);
27
+ defaultTrap: TrapFunc;
28
+ constructor(allocator: Allocator, defaultTrap?: TrapFunc);
27
29
  raise(src: Thread, error: Err): Promise<void>;
28
30
  }
@@ -5,20 +5,23 @@ const template = require("../../../template");
5
5
  const errors = require("../runtime/error");
6
6
  const err_1 = require("@quenk/noni/lib/control/err");
7
7
  const address_1 = require("../../../address");
8
+ const js_1 = require("../thread/shared/js");
9
+ const shared_1 = require("../thread/shared");
8
10
  /**
9
11
  * SupervisorErrorStrategy defaults to raising the error with the parent actor
10
12
  * if no trap function is specified.
11
13
  */
12
14
  class SupervisorErrorStrategy {
13
- constructor(allocator) {
15
+ constructor(allocator, defaultTrap = () => template.ACTION_RAISE) {
14
16
  this.allocator = allocator;
17
+ this.defaultTrap = defaultTrap;
15
18
  }
16
19
  async raise(src, error) {
17
20
  var _a;
18
21
  let prevThread;
19
22
  let err = error;
20
23
  let currentThread = src;
21
- let allocator = this.allocator;
24
+ let { allocator } = this;
22
25
  while (true) {
23
26
  if (prevThread) {
24
27
  await allocator.deallocate(prevThread);
@@ -30,10 +33,13 @@ class SupervisorErrorStrategy {
30
33
  err = new errors.ActorTerminatedErr(currentThread.address, src.address, error);
31
34
  }
32
35
  let tmpl = allocator.getTemplate(currentThread.address).get();
33
- let trap = (_a = tmpl.trap) !== null && _a !== void 0 ? _a : defaultTrap;
36
+ let trap = (_a = tmpl.trap) !== null && _a !== void 0 ? _a : this.defaultTrap;
34
37
  let action = trap(err);
35
38
  if (action === template.ACTION_IGNORE) {
36
- //TODO: Should the thread be put back in the idle state?
39
+ //TODO: figure this out correctly.
40
+ if (currentThread instanceof js_1.JSThread) {
41
+ currentThread.state = shared_1.ThreadState.IDLE;
42
+ }
37
43
  return;
38
44
  }
39
45
  else if (action === template.ACTION_RESTART) {
@@ -53,5 +59,4 @@ class SupervisorErrorStrategy {
53
59
  }
54
60
  }
55
61
  exports.SupervisorErrorStrategy = SupervisorErrorStrategy;
56
- const defaultTrap = () => template.ACTION_RAISE;
57
62
  //# sourceMappingURL=error.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/strategy/error.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AAC9C,2CAA2C;AAE3C,qDAA2D;AAE3D,8CAA6D;AAqB7D;;;GAGG;AACH,MAAa,uBAAuB;IAChC,YAAmB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAE3C,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,KAAU;;QAC/B,IAAI,UAAU,CAAC;QAEf,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,IAAI,aAAa,GAAG,GAAG,CAAC;QAExB,IAAI,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAE/B,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBACvC,IAAI,cAAc,GAAG,SAAS,CAAC,SAAS,CACpC,IAAA,mBAAS,EAAC,UAAU,CAAC,OAAO,CAAC,CAChC,CAAC;gBAEF,8BAA8B;gBAC9B,IAAI,cAAc,CAAC,SAAS,EAAE;oBAAE,MAAM;gBAEtC,aAAa,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC;gBAErC,GAAG,GAAG,IAAI,MAAM,CAAC,kBAAkB,CAC/B,aAAa,CAAC,OAAO,EACrB,GAAG,CAAC,OAAO,EACX,KAAK,CACR,CAAC;YACN,CAAC;YAED,IAAI,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;YAE9D,IAAI,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,WAAW,CAAC;YAEpC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAEvB,IAAI,MAAM,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;gBACpC,wDAAwD;gBACxD,OAAO;YACX,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC5C,MAAM,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAC1C,OAAO;YACX,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAC1C,OAAO;YACX,CAAC;iBAAM,IAAI,aAAa,CAAC,OAAO,KAAK,wBAAc,EAAE,CAAC;gBAClD,MAAM;YACV,CAAC;YAED,UAAU,GAAG,aAAa,CAAC;QAC/B,CAAC;QAED,MAAM,IAAA,aAAO,EAAC,GAAG,CAAC,CAAC;IACvB,CAAC;CACJ;AAvDD,0DAuDC;AAED,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC"}
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../../src/actor/system/vm/strategy/error.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AAC9C,2CAA2C;AAE3C,qDAA2D;AAE3D,8CAA6D;AAG7D,4CAA+C;AAC/C,6CAA+C;AAoB/C;;;GAGG;AACH,MAAa,uBAAuB;IAChC,YACW,SAAoB,EACpB,cAAwB,GAAG,EAAE,CAAC,QAAQ,CAAC,YAAY;QADnD,cAAS,GAAT,SAAS,CAAW;QACpB,gBAAW,GAAX,WAAW,CAAwC;IAC3D,CAAC;IAEJ,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,KAAU;;QAC/B,IAAI,UAAU,CAAC;QAEf,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,IAAI,aAAa,GAAG,GAAG,CAAC;QAExB,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;QAEzB,OAAO,IAAI,EAAE,CAAC;YACV,IAAI,UAAU,EAAE,CAAC;gBACb,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBACvC,IAAI,cAAc,GAAG,SAAS,CAAC,SAAS,CACpC,IAAA,mBAAS,EAAC,UAAU,CAAC,OAAO,CAAC,CAChC,CAAC;gBAEF,8BAA8B;gBAC9B,IAAI,cAAc,CAAC,SAAS,EAAE;oBAAE,MAAM;gBAEtC,aAAa,GAAG,cAAc,CAAC,GAAG,EAAE,CAAC;gBAErC,GAAG,GAAG,IAAI,MAAM,CAAC,kBAAkB,CAC/B,aAAa,CAAC,OAAO,EACrB,GAAG,CAAC,OAAO,EACX,KAAK,CACR,CAAC;YACN,CAAC;YAED,IAAI,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;YAE9D,IAAI,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,IAAI,CAAC,WAAW,CAAC;YAEzC,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;YAEvB,IAAI,MAAM,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;gBACpC,kCAAkC;gBAClC,IAAI,aAAa,YAAY,aAAQ,EAAE,CAAC;oBACpC,aAAa,CAAC,KAAK,GAAG,oBAAW,CAAC,IAAI,CAAC;gBAC3C,CAAC;gBACD,OAAO;YACX,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC5C,MAAM,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAC1C,OAAO;YACX,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,SAAS,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;gBAC1C,OAAO;YACX,CAAC;iBAAM,IAAI,aAAa,CAAC,OAAO,KAAK,wBAAc,EAAE,CAAC;gBAClD,MAAM;YACV,CAAC;YAED,UAAU,GAAG,aAAa,CAAC;QAC/B,CAAC;QAED,MAAM,IAAA,aAAO,EAAC,GAAG,CAAC,CAAC;IACvB,CAAC;CACJ;AA7DD,0DA6DC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenk/potoo",
3
- "version": "4.1.13",
3
+ "version": "4.1.15",
4
4
  "description": "Message passing virtual machine.",
5
5
  "main": "lib/index.js",
6
6
  "types": "./lib/index.d.ts",