Simplify
This commit is contained in:
parent
fa98a399bc
commit
eb24199c8b
6
actor.ts
6
actor.ts
|
@ -55,10 +55,6 @@ export class Actor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ref<T>(t: T): Ref<T> {
|
|
||||||
return new Ref(this, t);
|
|
||||||
}
|
|
||||||
|
|
||||||
execute(proc: () => void): void {
|
execute(proc: () => void): void {
|
||||||
queueMicrotask(() => {
|
queueMicrotask(() => {
|
||||||
if (this.alive) {
|
if (this.alive) {
|
||||||
|
@ -101,7 +97,7 @@ export class Turn {
|
||||||
}
|
}
|
||||||
|
|
||||||
ref<T>(t: T, what: string = "ref"): Ref<T> {
|
ref<T>(t: T, what: string = "ref"): Ref<T> {
|
||||||
return this._ensureActor(what).ref(t);
|
return new Ref(this._ensureActor(what), t);
|
||||||
}
|
}
|
||||||
|
|
||||||
spawn(bootProc: (t: Turn) => void, initialAssertions?: IdentitySet<Handle>): void {
|
spawn(bootProc: (t: Turn) => void, initialAssertions?: IdentitySet<Handle>): void {
|
||||||
|
|
9
main.ts
9
main.ts
|
@ -14,7 +14,7 @@ import { Bag, ChangeDescription } from './bag';
|
||||||
|
|
||||||
const Observe = Record.makeConstructor<Ref<Entity>>('Observe', ['label', 'observer']);
|
const Observe = Record.makeConstructor<Ref<Entity>>('Observe', ['label', 'observer']);
|
||||||
|
|
||||||
function makeDataspace(): Ref<Entity> {
|
function makeDataspace(): Entity {
|
||||||
const handleMap: IdentityMap<Handle, Assertion> = new IdentityMap();
|
const handleMap: IdentityMap<Handle, Assertion> = new IdentityMap();
|
||||||
const assertions = new Bag<Ref<Entity>>();
|
const assertions = new Bag<Ref<Entity>>();
|
||||||
const subscriptions: Dictionary<Dictionary<Dictionary<Handle>>> = new Dictionary();
|
const subscriptions: Dictionary<Dictionary<Dictionary<Handle>>> = new Dictionary();
|
||||||
|
@ -32,8 +32,7 @@ function makeDataspace(): Ref<Entity> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const a = new Actor();
|
return {
|
||||||
return a.ref<Entity>({
|
|
||||||
[assert](turn: Turn, assertion: Assertion, handle: Handle): void {
|
[assert](turn: Turn, assertion: Assertion, handle: Handle): void {
|
||||||
// console.log(`DS: assert ${assertion.asPreservesText()} :: ${handle}`);
|
// console.log(`DS: assert ${assertion.asPreservesText()} :: ${handle}`);
|
||||||
handleMap.set(handle, assertion);
|
handleMap.set(handle, assertion);
|
||||||
|
@ -90,7 +89,7 @@ function makeDataspace(): Ref<Entity> {
|
||||||
// console.log(`DS: message ${message.asPreservesText()}`);
|
// console.log(`DS: message ${message.asPreservesText()}`);
|
||||||
forEachSubscription(message, (_handleMap, peer) => turn.message(peer, message));
|
forEachSubscription(message, (_handleMap, peer) => turn.message(peer, message));
|
||||||
}
|
}
|
||||||
});
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const BoxState = Record.makeConstructor<Ref<Entity>>('BoxState', ['value']);
|
const BoxState = Record.makeConstructor<Ref<Entity>>('BoxState', ['value']);
|
||||||
|
@ -99,7 +98,7 @@ const SetBox = Record.makeConstructor<Ref<Entity>>('SetBox', ['newValue']);
|
||||||
let startTime = Date.now();
|
let startTime = Date.now();
|
||||||
let prevValue = 0;
|
let prevValue = 0;
|
||||||
Turn.for(null, async (t: Turn) => {
|
Turn.for(null, async (t: Turn) => {
|
||||||
const ds = makeDataspace();
|
const ds = new Ref(new Actor(), makeDataspace());
|
||||||
|
|
||||||
// Box
|
// Box
|
||||||
t.spawn(t => {
|
t.spawn(t => {
|
||||||
|
|
Loading…
Reference in New Issue