Io Futures
I’ve been doing a bit of Io development in my spare time, and I wanted to bring forward a feature that really makes me happy.
The feature is called futures and here’s how it works:
val := futureSend( # some longish operation ) # some other things... val println
When futureSend
gets activated, it spins off a co-routine with the message passed to futureSend
and starts working on it.
When the value returned from futureSend
is actually used the operation blocks until the message has completed (if it hasn’t already), and then val
becomes the return value of the message.
Its a very clean way to handle joining because they’re totally transparent, meaning that val
may as well have been activated serially.
If you’re looking for a similar behavior other languages: