3 ms·
I wish FreeBSD and Linux had Solaris style doors extended to support kqueue()/epoll() in addition to threads.
by crest 2y ago
I wish FreeBSD and Linux had Solaris style doors extended to support kqueue()/epoll() in addition to threads.
- cryptonector 2y agoDoors are designed to be synchronous. Therefore doors are not really compatible with kqueue/epoll/event ports. That is, the point of doors is that they are for clients to temporarily and synchronously transfer thread priority and CPU quantum to a server thread that will respond quickly because it does no blocking I/O. This transfer of CPU quantum thing cannot happen for async versions of doors, which would defeat the point of doors, thus there is no point to async doors. One can implement async doors by having the client transfer the FD to a door where the client is the service, then have the server do what it can synchronously, schedule async work, return immediately, and later call back the client on its door when the slow work is done. But if you'd do this then you might as well just use more traditional (and portable) IPC techniques.