> I want to run asyncdispatch in a non-network environment, but both 
> ioselectors_select and ioselectors_epoll use functions that depend on the 
> network stack.

Unfortunately that's generally not possible as they're both based on calling 
select or epoll at their core. Some RTOS will provide a uart -> socket bridge 
to let you use network polling / socket descriptors. It's slightly less 
efficient but can be a nice workaround. Also file descriptors with a select 
like api would work. Zephyr for example support 
[eventfd](https://docs.zephyrproject.org/apidoc/latest/eventfd_8h.html). Esp32 
rtos has a uart socket adaptor.

> -d:nimNoNet

Wouldnt wotk. The asyncdispatch library is built on socket api's as thats the 
primary method to multiplex data on desktop OS'es. Technically one could 
probably build an asyncdispatch variant based on say channels or queues. It 
would be interesting to be able to use generic queues as the backing io 
selector. But that'd require lot of work.

Though easier would be if NuttX has an io event api similar to select api (e.g. 
using integer file descriptors). There's also nim-taskpools which might provide 
another route. It should work on an RTOS. 

Reply via email to