val with_' : ?give_up:unit Async.Deferred.t ‑> f:(flows:Async_smtp__.Mail_log.Flows.t ‑> Async_smtp__.Client.t ‑> 'a Async.Deferred.Or_error.t) ‑> cache:t ‑> ?route:string ‑> Async_smtp_types.Smtp_socket_address.t list ‑> [ `Ok of Async_smtp_types.Smtp_socket_address.t * 'a Core.Or_error.t | `Error_opening_all_addresses of (Async_smtp_types.Smtp_socket_address.t * Core.Error.t) list | `Gave_up_waiting_for_address | `Cache_is_closed ] Async.Deferred.t
with_'
concurrently tries to get a cached connection for one of addresses
.
`Ok
and `Error_opening_resource
return back the Smtp_socket_address.t
that was
used.