summary refs log tree commit diff stats
path: root/lib/pure/selectors.nim
diff options
context:
space:
mode:
authorBung <crc32@qq.com>2023-08-07 16:09:35 +0800
committerGitHub <noreply@github.com>2023-08-07 10:09:35 +0200
commitfe9ae2c69adc39cd170b4bd31221fb66135fd571 (patch)
tree67255e7b5d7cf228e621b069740d940052d5c9c5 /lib/pure/selectors.nim
parent614a18cd05bda525f62310578115ecc6c41b7e09 (diff)
downloadNim-fe9ae2c69adc39cd170b4bd31221fb66135fd571.tar.gz
nimIoselector option (#22395)
* selectors.nim: Add define to select event loop implementation

* rename to nimIoselector

---------

Co-authored-by: Jan Pobrislo <ccx@webprojekty.cz>
Diffstat (limited to 'lib/pure/selectors.nim')
-rw-r--r--lib/pure/selectors.nim13
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/pure/selectors.nim b/lib/pure/selectors.nim
index 2d10e3f32..fcee22c09 100644
--- a/lib/pure/selectors.nim
+++ b/lib/pure/selectors.nim
@@ -344,7 +344,18 @@ else:
           res = int(fdLim.rlim_cur) - 1
         res
 
-  when defined(linux) and not defined(emscripten):
+  when defined(nimIoselector):
+    when nimIoselector == "epoll":
+      include ioselects/ioselectors_epoll
+    elif nimIoselector == "kqueue":
+      include ioselects/ioselectors_kqueue
+    elif nimIoselector == "poll":
+      include ioselects/ioselectors_poll
+    elif nimIoselector == "select":
+      include ioselects/ioselectors_select
+    else:
+      {.fatal: "Unknown nimIoselector specified by define.".}
+  elif defined(linux) and not defined(emscripten):
     include ioselects/ioselectors_epoll
   elif bsdPlatform:
     include ioselects/ioselectors_kqueue