Thank you :) It's very pleasant to meet a person that feels the same problem very well! Yes, one of the key points is exactly handling the map of callbacks. Do I understand correctly that your cb module stands in one row with addTimeout and future and doesn't provide freeing callbacks on it's own?
Since you've written a similar module too, you would likely want to know that one of high speed factors of the module was using optimized versions of setTimeout (1.05..1.5 times) and clearTimeout (20-30 times faster :)). I've created a pull request ( https://github.com/joyent/node/pull/4193 ) for node.js. More details and benchmarks are here - https://github.com/joyent/node/issues/4225#issuecomment-9971557 пятница, 2 ноября 2012 г., 20:03:14 UTC+7 пользователь jmar777 написал: > > Looks like an interesting idea. We had to build some similar > functionality for wrapping some fairly indeterminate behavior to a > request/response model. Part of our solution there was a utility that at > least offered some of the timeout handling: https://github.com/jmar777/cb > > Using the above, we then just had a map that kept track of callbacks keyed > by an id (which looks like that's part of the problem candle addresses). > Nice work! > > On Wednesday, October 31, 2012 7:48:56 AM UTC-4, Alexey Kupershtokh wrote: >> >> Here it is: https://github.com/AlexeyKupershtokh/node-candle >> >> it's similar to: >> https://github.com/coolaj86/futures/tree/v2.0/future >> and >> https://github.com/temsa/addTimeout >> to some extent, except that the callbacks are able to free in my case >> allowing to avoid leaks. >> >> As an yet another example, if you use a callback wrapped by >> addTimeout(timeout, cb) or future.once(cb).setTimeout(timeout) as an ACK >> callback for a socket.io request that is never acknowledged, this >> wrapepd callback would exist till the socket is disconnected. >> >> Any response is highly appreciated. >> > -- 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
