The number of connections that can be open at the same time in R is
*typically* 128, where the first three are occupied by the always open
`stdin()`

, `stdout()`

, and `stderr()`

connections, which leaves 125 slots
available for other types of connections. Connections are used in many
places, e.g. reading and writing to file, downloading URLs, communicating
with parallel R processes over a socket connections (e.g.
`parallel::makeCluster()`

and `makeClusterPSOCK()`

), and capturing
standard output via text connections (e.g. `utils::capture.output()`

).

```
availableConnections()
freeConnections()
```

A non-negative integer, or `+Inf`

if the available number of connections
is greater than 16384, which is a limit be set via option
`parallelly.availableConnections.tries`

.

In R (>= 4.4.0), it is possible to *increase* the limit of 128 connections
to a greater number via command-line option `--max-connections=N`

, e.g.

```
$ R --max-connection=512
```

For R (< 4.4.0), the limit can only be changed by rebuilding R from source, because the limited is hardcoded as a

in `src/main/connections.c`

.

Since the limit *might* changed, for instance in custom R builds or in
future releases of R, we do not want to assume that the limit is 128 for
all R installation. Unfortunately, it is not possible to query R for what
the limit is.
Instead, `availableConnections()`

infers it from trial-and-error.
until it fails. For efficiency, the result is memoized throughout the
current R session.

'WISH: Increase limit of maximum number of open connections (currently 125+3)', 2016-07-09, https://github.com/HenrikBengtsson/Wishlist-for-R/issues/28