An abstract implementation for blockingly waiting for future completion.
An abstract implementation for blockingly waiting for future completion. We need this for synchronously prepared statements and other instances and a mechanism to abstract over the various future backends.
the type of the underlying future.
The underlying future to wait for.
The amount of time to wait for.
The underlying value if the future is successfully completed, or an error thrown otherwise.