Returns a new future which will be completed either by the original future or by a timeout exception after the specified delay.
Returns a new future which will be completed either by the original future or by a timeout exception after the specified delay. Timeout tasks are cancelled when the main future completes
to set timeout
for the main completion of the returned future
schedules the timeout and combines the futures