git ssb

0+

wanderer🌟 / js-primea-hypervisor



Commit 1585b228b98ee11398442d6ae9697882ea7360dd

fix parents in portmanger

wanderer committed on 5/6/2017, 2:12:00 PM
Parent: 4b635551d20b7713c297b8e2e30ac37c8b830837

Files changed

kernel.jschanged
portManager.jschanged
tests/index.jschanged
kernel.jsView
@@ -45,9 +45,8 @@
4545 }
4646 }
4747
4848 _updateVmState (vmState, message) {
49- // console.log('update state', vmState, this.entryPort.id)
5049 this.vmState = vmState
5150 this.emit(vmState, message)
5251 }
5352
portManager.jsView
@@ -1,6 +1,6 @@
11 const Port = require('./port.js')
2-const PARENT = Symbol('parent')
2+const ENTRY = Symbol('entry')
33
44 // decides which message to go firts
55 function messageArbiter (pairA, pairB) {
66 const a = pairA[1].peek()
@@ -37,10 +37,10 @@
3737 })
3838
3939 // create the parent port
4040 await Promise.all(ports)
41- const parentID = await this.hypervisor.generateID(this.parentPort)
42- this._portMap.set(parentID, new Port(PARENT))
41+ const id = await this.hypervisor.generateID(this.parentPort)
42+ this._portMap.set(id, new Port(ENTRY))
4343 }
4444
4545 async _mapPort (name, port) {
4646 const id = await this.hypervisor.generateID(port)
@@ -69,13 +69,13 @@
6969 // waits till all ports have reached a threshold tick count
7070 async wait (threshold) {
7171 // find the ports that have a smaller tick count then the threshold tick count
7272 const unkownPorts = [...this._portMap].filter(([id, port]) => {
73- return (port.hasSent || port.name === PARENT) && port.ticks < threshold
73+ return (port.hasSent || port.name === ENTRY) && port.ticks < threshold
7474 })
7575
7676 const promises = unkownPorts.map(async ([id, port]) => {
77- const portObj = port.name === PARENT ? this.parentPort : this.ports[port.name]
77+ const portObj = port.name === ENTRY ? this.parentPort : this.ports[port.name]
7878 // update the port's tick count
7979 port.ticks = await this.hypervisor.wait(portObj, threshold)
8080 })
8181 return Promise.all(promises)
tests/index.jsView
@@ -34,27 +34,22 @@
3434 t.true(m === message, 'should recive a message')
3535 }
3636 }
3737
38- try {
39- const hypervisor = new Hypervisor({dag: node.dag})
40- hypervisor.registerContainer('test', testVMContainer)
38+ const hypervisor = new Hypervisor({dag: node.dag})
39+ hypervisor.registerContainer('test', testVMContainer)
4140
42- const rootContainer = await hypervisor.createInstance('test')
43- const port = await rootContainer.createPort('test', 'first')
41+ const rootContainer = await hypervisor.createInstance('test')
42+ const port = await rootContainer.createPort('test', 'first')
4443
45- await rootContainer.send(port, message)
44+ await rootContainer.send(port, message)
4645
47- const stateRoot = await hypervisor.createStateRoot(rootContainer, Infinity)
48- t.deepEquals(stateRoot, expectedState, 'expected root!')
49- } catch (e) {
50- console.log(e)
51- }
52-
46+ const stateRoot = await hypervisor.createStateRoot(rootContainer, Infinity)
47+ t.deepEquals(stateRoot, expectedState, 'expected root!')
5348 t.end()
5449 })
5550
56- tape('one child contract', async t => {
51+ tape.only('one child contract', async t => {
5752 let message = new Message()
5853 const expectedState = { '/': 'zdpuAqtY43BMaTCB5nTt7kooeKAWibqGs44Uwy9jJQHjTnHRK' }
5954 let hasResolved = false
6055
@@ -78,20 +73,23 @@
7873 this.kernel.incrementTicks(1)
7974 }
8075 }
8176
82- const hypervisor = new Hypervisor({dag: node.dag})
83- hypervisor.registerContainer('test', testVMContainer)
84- hypervisor.registerContainer('test2', testVMContainer2)
77+ try {
78+ const hypervisor = new Hypervisor({dag: node.dag})
79+ hypervisor.registerContainer('test', testVMContainer)
80+ hypervisor.registerContainer('test2', testVMContainer2)
8581
86- const root = await hypervisor.createInstance({type: 'test'})
87- const port = await root.createPort('test', 'first')
82+ const root = await hypervisor.createInstance('test')
83+ const port = await root.createPort('test', 'first')
8884
89- await root.send(port, message)
90- console.log('sent!')
91- await hypervisor.createStateRoot(root, Infinity)
92- console.log('state root generated')
93- t.true(hasResolved, 'should resolve before generating the state root')
85+ await root.send(port, message)
86+ await hypervisor.createStateRoot(root, Infinity)
87+ console.log('state root generated')
88+ t.true(hasResolved, 'should resolve before generating the state root')
89+ } catch (e) {
90+ console.log(e)
91+ }
9492 // t.deepEquals(port, expectedState, 'expected state')
9593
9694 // test reviving the state
9795 // class testVMContainer3 extends BaseContainer {

Built with git-ssb-web