Work around broken `std::promise` implementation