Future.get(Duration)?
Steven Schlansker
stevenschlansker at gmail.com
Mon Apr 9 22:49:32 UTC 2018
Hi core-libs-dev,
Future.get(int, TimeUnit) is great, it allows you to put a timeout.
Duration is great, it's a common way to cart a duration around, and some frameworks can parse it for you, say
you have an injector (Spring in this case) that can handle:
@Value("my-timeout:PT10s")
Duration timeout;
Now, you might obviously try to write:
myFuture.get(timeout); // ARGH
only to find out that instead you have to do some convoluted construction like
myFuture.get(timeout.toMillis(), TimeUnit.MILLISECONDS); // :(
How about a super simple added method to Future?
default T get(Duration timeout) throws TimeoutException {
return get(timeout.toMillis(), TimeUnit.MILLISECONDS); // maybe this should handle nanos, but you get the idea
}
Thanks for considering!
More information about the core-libs-dev
mailing list