Eliminating use of std::future where possible