> > I know that Rust currently doesn't currently support this, but what if > futures could use a custom allocator? Then it could work like this: > > 1. Futures use a custom free-list allocator for performance. > 2. The I/O request allocates new future object, registers uv event, then > returns unique pointer to the future to its' caller. However I/O manager > retains internal reference to the future, so that it can be resolved once > I/O completes. > 3. The future object also has a flag indicating that there's an > outstanding I/O, so if caller drops the reference to it, it won't be > returned to the free list until I/O completes. > 4. When I/O is complete, the future get resolved and all attached > continuations are run. > > > Vadim > > Brian,
Vadim described the idea fairly well there with the meat of my idea being # 2. I was just trying to describe the scenario that # 4 be able to happen only when all the registered event(s) happen (not just 1 blocking step but perhaps many blocking steps). I would not know where to start mocking something like that with Rust yet... still beginning. -- -Thad http://www.freebase.com/view/en/thad_guidry
_______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev