ported to FreeRTOS
This commit is contained in:
parent
fa7b12bcf9
commit
9f566881f1
2 changed files with 22 additions and 11 deletions
|
|
@ -1946,13 +1946,15 @@ proc activeDescriptors*(): int {.inline.} =
|
|||
when defined(posix):
|
||||
import posix
|
||||
|
||||
proc maxDescriptors*(): int {.raises: OSError.} =
|
||||
## Returns the maximum number of active file descriptors for the current
|
||||
## process. This involves a system call.
|
||||
when defined(windows):
|
||||
result = 16_700_000
|
||||
else:
|
||||
var fdLim: RLimit
|
||||
if getrlimit(RLIMIT_NOFILE, fdLim) < 0:
|
||||
raiseOSError(osLastError())
|
||||
result = int(fdLim.rlim_cur) - 1
|
||||
when defined(linux) or defined(windows) or defined(macosx) or defined(bsd):
|
||||
proc maxDescriptors*(): int {.raises: OSError.} =
|
||||
## Returns the maximum number of active file descriptors for the current
|
||||
## process. This involves a system call. For now `maxDescriptors` is
|
||||
## supported on the following OSes: Windows, Linux, OSX, BSD.
|
||||
when defined(windows):
|
||||
result = 16_700_000
|
||||
else:
|
||||
var fdLim: RLimit
|
||||
if getrlimit(RLIMIT_NOFILE, fdLim) < 0:
|
||||
raiseOSError(osLastError())
|
||||
result = int(fdLim.rlim_cur) - 1
|
||||
|
|
|
|||
|
|
@ -308,9 +308,18 @@ proc processClient(server: AsyncHttpServer, client: AsyncSocket, address: string
|
|||
)
|
||||
if not retry: break
|
||||
|
||||
const
|
||||
nimMaxDescriptorsFallback* {.intdefine.} = 16_000 ## fallback value for \
|
||||
## when `maxDescriptors` is not available.
|
||||
## This can be set on the command line during compilation
|
||||
## via `-d:nimMaxDescriptorsFallback=N`
|
||||
|
||||
proc listen*(server: AsyncHttpServer; port: Port; address = "") =
|
||||
## Listen to the given port and address.
|
||||
server.maxFDs = maxDescriptors()
|
||||
when declared(maxDescriptors):
|
||||
server.maxFDs = try: maxDescriptors() except: nimMaxDescriptorsFallback
|
||||
else:
|
||||
server.maxFDs = nimMaxDescriptorsFallback
|
||||
server.socket = newAsyncSocket()
|
||||
if server.reuseAddr:
|
||||
server.socket.setSockOpt(OptReuseAddr, true)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue