Browse Source

domain: document and test dispose event

v0.9.1-release
Andreas Madsen 13 years ago
committed by Ben Noordhuis
parent
commit
60b45dcbb6
  1. 2
      doc/api/domain.markdown
  2. 8
      test/simple/test-domain-http-server.js

2
doc/api/domain.markdown

@ -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

8
test/simple/test-domain-http-server.js

@ -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');
}); });

Loading…
Cancel
Save