tree 54763e15d8494aacd1edbb0fb176aa21f06bf1f3
parent 53077693e161368f6c33b73a2f967fe490c36838
author Nick Vatamaniuc <vatamane@gmail.com> 1617058073 -0400
committer Nick Vatamaniuc <nickva@users.noreply.github.com> 1617123230 -0400

Make the default wait timeout infinity

This brings the default behavior in line with other FoundationDB client
libraries which don't use client-side timeouts when waiting for futures to
fire.

A few other reasons are:

  * Currently we may generate spurious future `ready` messages when timeouts
fire during overload scenarios. The caller would have to know to flush ready
messages if they caught a `{timeout, _}`

 * The response may succeed under 5 seconds, but it would be queued in the
   networking layer and throw a `timeout` error on the Erlang side.

 * Timeouts can be set as a transaction or db handle options. It's easier to
   apply configuration defaults there than for individual wait functions.

 * Watch futures are not bound by the 5 second transaction time limit, and
   they'd have to know about the default `wait/1,2` call timeout to know to
   extend it or set it to `infinity`.
