Module Async_smtp__Client_cache.Tcp

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.