Tue 27 Aug 00:14:56 CEST 2024
This commit is contained in:
parent
49b975bdf1
commit
bf52ebc1c5
61
test/test-forkA.js
Normal file
61
test/test-forkA.js
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
// Fork, migration, remote signalling
|
||||||
|
// Requires test-forkB, too.
|
||||||
|
|
||||||
|
Aios.Sig.options.debug.send=true;
|
||||||
|
|
||||||
|
port(DIR.IP('http://localhost:6666'))
|
||||||
|
start();
|
||||||
|
|
||||||
|
function ag (options) {
|
||||||
|
this.child=null;
|
||||||
|
this.master=null;
|
||||||
|
|
||||||
|
this.act = {
|
||||||
|
init : function () {
|
||||||
|
this.master=true;
|
||||||
|
log('Starting.');
|
||||||
|
sleep(3000);
|
||||||
|
},
|
||||||
|
|
||||||
|
replicate : function () {
|
||||||
|
log('Replicating...');
|
||||||
|
this.child=fork();
|
||||||
|
},
|
||||||
|
|
||||||
|
migrate : function () {
|
||||||
|
var nodes = link(DIR.IP('%'));
|
||||||
|
log('Migrating to '+nodes[0]);
|
||||||
|
if (nodes.length) moveto(DIR.NODE(nodes[0]));
|
||||||
|
},
|
||||||
|
|
||||||
|
killing : function () {
|
||||||
|
log('Killing child...');
|
||||||
|
kill(this.child);
|
||||||
|
},
|
||||||
|
|
||||||
|
wait : function () {
|
||||||
|
log('Waiting ...');
|
||||||
|
if (this.child) sleep(3000); else sleep(1000);
|
||||||
|
},
|
||||||
|
|
||||||
|
end : function () {
|
||||||
|
log('Terminating.');
|
||||||
|
kill();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.trans = {
|
||||||
|
init : replicate,
|
||||||
|
replicate : function () { return this.child?wait:migrate },
|
||||||
|
migrate : wait,
|
||||||
|
killing : end,
|
||||||
|
wait : function () { return this.child?killing:wait },
|
||||||
|
}
|
||||||
|
|
||||||
|
this.next=init;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
compile(ag);
|
||||||
|
|
||||||
|
create('ag',{ },2);
|
Loading…
Reference in New Issue
Block a user