IoFuture does have a performance cost associated with it, as it requires a notifyAll() call when setting the value. As the client code should be pretty much all non-blocking I think we might be better just using this.