summary refs log tree commit diff stats
diff options
context:
space:
mode:
-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