0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00

domain: document and test dispose event

This commit is contained in:
Andreas Madsen 2012-06-08 20:24:52 +02:00 committed by Ben Noordhuis
parent 535e109a3a
commit 60b45dcbb6
2 changed files with 9 additions and 1 deletions

View File

@ -258,6 +258,8 @@ The intention of calling `dispose` is generally to prevent cascading
errors when a critical part of the Domain context is found to be in an errors when a critical part of the Domain context is found to be in an
error state. error state.
Once the domain is disposed the `dispose` event will emit.
Note that IO might still be performed. However, to the highest degree Note that IO might still be performed. However, to the highest degree
possible, once a domain is disposed, further errors from the emitters in possible, once a domain is disposed, further errors from the emitters in
that set will be ignored. So, even if some remaining actions are still that set will be ignored. So, even if some remaining actions are still

View File

@ -28,7 +28,8 @@ var objects = { foo: 'bar', baz: {}, num: 42, arr: [1,2,3] };
objects.baz.asdf = objects; objects.baz.asdf = objects;
var serverCaught = 0; var serverCaught = 0;
var clientCaught = 0 var clientCaught = 0;
var disposeEmit = 0;
var server = http.createServer(function(req, res) { var server = http.createServer(function(req, res) {
var dom = domain.create(); var dom = domain.create();
@ -84,6 +85,10 @@ function next() {
dom.dispose(); dom.dispose();
}); });
dom.on('dispose', function() {
disposeEmit += 1;
});
var req = http.get({ host: 'localhost', port: common.PORT, path: p }); var req = http.get({ host: 'localhost', port: common.PORT, path: p });
dom.add(req); dom.add(req);
req.on('response', function(res) { req.on('response', function(res) {
@ -111,5 +116,6 @@ function next() {
process.on('exit', function() { process.on('exit', function() {
assert.equal(serverCaught, 2); assert.equal(serverCaught, 2);
assert.equal(clientCaught, 2); assert.equal(clientCaught, 2);
assert.equal(disposeEmit, 2);
console.log('ok'); console.log('ok');
}); });