DoxigAlpha

resize

Resizes the connection pool.

If the new size is smaller than the current size, then idle connections will be closed until the pool is the new size.

Threadsafe.

Function parameters

Parameters

#
pool:*ConnectionPool
new_size:usize

A Least-Recently-Used cache of open connections to be reused.

Types

#
ConnectionPool
A Least-Recently-Used cache of open connections to be reused.

Release all associated resources with the client.

Functions

#
deinit
Release all associated resources with the client.
initDefaultProxies
Populates `http_proxy` and `https_proxy` via standard proxy environment variables.
connectTcp
Reuses a `Connection` if one matching `host` and `port` is already open.
connectUnix
Connect to `path` as a unix domain socket.
connectProxied
Connect to `proxied_host:proxied_port` using the specified proxy with HTTP
connect
Connect to `host:port` using the specified protocol.
request
Open a connection to the host specified by `uri` and prepare to send a HTTP request.
fetch
Perform a one-shot HTTP request with the provided options.

Error sets in this namespace

Error Sets

#

= std.options.http_disable_tls

Values

#
disable_tls
= std.options.http_disable_tls

Source

Implementation

#
pub fn resize(pool: *ConnectionPool, allocator: Allocator, new_size: usize) void {
    pool.mutex.lock();
    defer pool.mutex.unlock();

    const next = pool.free.first;
    _ = next;
    while (pool.free_len > new_size) {
        const popped = pool.free.popFirst() orelse unreachable;
        pool.free_len -= 1;

        popped.data.close(allocator);
        allocator.destroy(popped);
    }

    pool.free_size = new_size;
}