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:
parent
64a788cafb
commit
ab1d4a5d58
2 changed files with 9 additions and 1 deletions
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue