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_CUR* {.importc: "SEEK_CUR", header: "<unistd.h>".}: cint
|
||||||
var SEEK_END* {.importc: "SEEK_END", 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
|
SelectEvent* = ptr SelectEventImpl
|
||||||
|
|
||||||
proc newSelector*[T](): Selector[T] =
|
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()
|
# Retrieve the maximum fd count (for current OS) via getrlimit()
|
||||||
var maxFD = maxDescriptors()
|
var maxFD = maxDescriptors()
|
||||||
doAssert(maxFD > 0)
|
doAssert(maxFD > 0)
|
||||||
# Start with a reasonable size, checkFd() will grow this on demand
|
# Start with a reasonable size, checkFd() will grow this on demand
|
||||||
const numFD = 1024
|
let numFD = initialNumFD()
|
||||||
|
|
||||||
var epollFD = epoll_create1(O_CLOEXEC)
|
var epollFD = epoll_create1(O_CLOEXEC)
|
||||||
if epollFD < 0:
|
if epollFD < 0:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue