mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-16 08:04:20 +00:00
ioselectors_epoll: for NuttX, limit initial numFD to configured value. (#21421)
ioselectors: ioselectors_epoll: for NuttX, limit initial numFD to configured value. In the NuttX build config, there is a setting called "FS_NEPOLL_DESCRIPTORS". -------- config FS_NEPOLL_DESCRIPTORS int "Maximum number of default epoll descriptors for epoll_create1(2)" default 8 ---help--- The maximum number of default epoll descriptors for epoll_create1(2) -------- For NuttX, change the number of fd arrays allocated by newSelector() to that value. Signed-off-by: Takeyoshi Kikuchi <kikuchi@centurysys.co.jp>
This commit is contained in:
@@ -750,3 +750,6 @@ var SEEK_SET* {.importc: "SEEK_SET", header: "<unistd.h>".}: cint
|
||||
var SEEK_CUR* {.importc: "SEEK_CUR", header: "<unistd.h>".}: cint
|
||||
var SEEK_END* {.importc: "SEEK_END", header: "<unistd.h>".}: cint
|
||||
|
||||
# <nuttx/config.h>
|
||||
when defined(nuttx):
|
||||
var NEPOLL_MAX* {.importc: "CONFIG_FS_NEPOLL_DESCRIPTORS", header: "<nuttx/config.h>".}: cint
|
||||
|
||||
@@ -72,11 +72,16 @@ type
|
||||
SelectEvent* = ptr SelectEventImpl
|
||||
|
||||
proc newSelector*[T](): Selector[T] =
|
||||
proc initialNumFD(): int {.inline.} =
|
||||
when defined(nuttx):
|
||||
result = NEPOLL_MAX
|
||||
else:
|
||||
result = 1024
|
||||
# Retrieve the maximum fd count (for current OS) via getrlimit()
|
||||
var maxFD = maxDescriptors()
|
||||
doAssert(maxFD > 0)
|
||||
# Start with a reasonable size, checkFd() will grow this on demand
|
||||
const numFD = 1024
|
||||
let numFD = initialNumFD()
|
||||
|
||||
var epollFD = epoll_create1(O_CLOEXEC)
|
||||
if epollFD < 0:
|
||||
|
||||
Reference in New Issue
Block a user