Very interesting - I wasn't aware of the set/clearTimeout optimizations. And yes, you're correct about the scope of my module - it's just a lightweight utility for handling timeouts and enforcing certain callback execution semantics.
On Friday, November 2, 2012 10:15:03 AM UTC-4, Alexey Kupershtokh wrote: > > 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
