currently porting the Nim language to NuttX.
(It has been merged into the Nim devel branch)

When using select/epoll, it is necessary to determine the maximum value of file descriptor in order to assign a structure to store the fd to be waited in advance.

It is used in this way.

---------
proc newSelector*[T](): Selector[T] =
  # Retrieve the maximum fd count (for current OS) via getrlimit()
  var maxFD = maxDescriptors() <---
# Start with a reasonable size, checkFd() will grow this on demand
  const numFD = 1024
...
for i in 0 ... < numFD:
    result.fds[i].ident = InvalidIdent
---------
(Now I realize that numFD also needs to be switched for NuttX...)

Since the available memory capacity varies from device to device,
Is there any way to find the best value for each build config?

Porting to FreeRTOS in the Nim language uses the maximum number of sockets available, set by the user at build time.

---------
var FD_MAX* {.importc: "CONFIG_LWIP_MAX_SOCKETS", header: "<lwipopts.h>".} : cint
---------

best regards,
KIKUCHI Takeyoshi

---
kiku...@centurysys.co.jp

Reply via email to