Hi Forrest, Superb.. Really it helped :)
On Sat, Jan 11, 2014 at 7:47 AM, Forrest L Norvell <[email protected]>wrote: > Let me take a stab at rephrasing these bits in easier to understand terms: > > On Fri, Jan 10, 2014 at 7:26 AM, Tamil selvan R.S <[email protected]>wrote: > >> *In order to prevent excessive memory usage, Domain objects themselves >> are not implicitly added as children of the active domain. If they were, >> then it would be too easy to prevent request and response objects from >> being properly garbage collected* >> > > This is saying that there's no parent-child relationship between domains, > so if you create one domain while another one is active, the two will not > be connected to each other. This is because if the domain system > automatically managed those relationships, you might end up with a lot of > domains with references to other domains, and none of them would ever get > garbage collected until all of them were no longer used. Because the > request and response objects used by HTTP conversations are EventEmitters, > they're automatically bound to domains, so they too would end up getting > retained for too long. This would look and feel like a memory leak. > > As an aside, something I've learned that's confusing for people new to > working with domains is figuring out which parts are done automatically, > and which you're responsible for managing yourself. For example, if you > create a new EventEmitter, socket, or stream within an active domain, Node > takes care of binding that object to the domain, but if you want to add an > existing object (and its bound handlers) to the domain, you're responsible > for using something like domain.add to do the binding yourself. Written > down, it's easy to see the difference between the two, but in practice it > takes some experience to get comfortable with how domain binding works. > > The documentation could stand to be clearer around this, but coming up > with simple, clear language to describe this stuff is hard. > > >> Implicit binding routes thrown errors and 'error' events to the Domain's >> error event, but* does not register the EventEmitter on the Domain, so >> domain.dispose() will not shut down the EventEmitter. Implicit binding only >> takes care of thrown errors and 'error' events* >> > > The best advice I can give here is never, ever use domain.dispose. It was > an interesting idea that didn't work out, and it's deprecated in Node 0.12. > See http://blog.izs.me/page/6 for a more in-depth explanation as to why. > > > Hope this helps! > Forrest > > Can Someone Help me understand the above two points with some scenario or >> code? I'm getting lost how many ever times I read the doc. >> >> -- >> -- >> Job Board: http://jobs.nodejs.org/ >> Posting guidelines: >> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >> You received this message because you are subscribed to the Google >> Groups "nodejs" group. >> To post to this group, send email to [email protected] >> To unsubscribe from this group, send email to >> [email protected] >> For more options, visit this group at >> http://groups.google.com/group/nodejs?hl=en?hl=en >> >> --- >> You received this message because you are subscribed to the Google Groups >> "nodejs" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to a topic in the > Google Groups "nodejs" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/nodejs/5psScxxgyLU/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
