On Sunday, 27 March 2016 at 08:16:22 UTC, Eugene Wissner wrote:
On Sunday, 27 March 2016 at 07:16:53 UTC, Vlad Levenfeld wrote:
https://github.com/evenex/future/
I've been having to do a lot of complicated async work lately
(sometimes multithreaded, sometimes not), and I decided to
abstract a some patterns out and unify them with a little bit
of formalism borrowed from functional languages. I've aimed to
keep things as simple as possible while providing a full
spread of functionality. This has worked well for me under a
variety of use-cases, but YMMV of course.
Anyway I've occasionally seen people on IRC asking about
futures, so I thought I'd share and make this announcement.
This lib depends on another lib of mine (for tagged unions and
related things) which might not appeal to some but if there is
demand for futures sans dependencies I can always go back and
manually inline some of the templates.
TL;DR:
auto x = async!((y,z) => y + z)(1,2);
x.await;
assert(x.result.success = 3);
Hi Vlad,
Are you intend to open source other parts of your work?
Can I ask what are you using for your async stuff: libasync,
vibe, asynchronous or something self written?
For things like timers, event loops and networking in my current
project I am using libasync.
As for other parts of my work: I've been getting some good
mileage out of a small set of generic primitives for operating on
serial streams, I will probably pull them out and release them
with some documentation soon.