Re: epoll implementation for Cygwin

Daisuke Fujimura via Cygwin <[email protected]> Sat, 21 Mar 2026 09:51:58 +0900
Newsgroups gmane.os.cygwin
Message-ID <CAA3frXTwAzO+Qdd3Fd=Vdj+1ZbXrMdTSHEDwsWoa_1ms1WmwUg@mail.gmail.com>
Hi Hamish and all,

As the author of cygepoll, I’d like to provide some context regarding
its implementation.

Currently, cygepoll is an experimental wrapper around upoll
(https://github.com/richardhundt/upoll). In the Cygwin environment, it
simply maps the epoll interface onto poll or select.

Because it relies on these underlying mechanisms, it doesn't offer the
performance benefits typically associated with epoll on Linux. It
essentially carries the same overhead as poll or select.

If the goal is to provide a truly performant epoll implementation for
Cygwin, I believe it should be implemented natively within
cygwin1.dll—perhaps by leveraging Windows-specific APIs.

Providing cygepoll as a standalone package might offer API
compatibility, but it wouldn't meet the performance expectations users
have for epoll. Therefore, I think discussing a native implementation
within the Cygwin core is a more meaningful path than packaging my
current experimental library.

Best regards,

Daisuke Fujimura

On Sat, Mar 21, 2026 at 6:03 AM Hamish McIntyre-Bhatty via Cygwin
<[email protected]> wrote:
>
> Hi all,
>
> I recently stumbled across this epoll implementation for Cygwin:
> https://github.com/fd00/cygepoll
>
> I'm not sure how to test it, or even if it would still work, as it is
> very old, but I know that wxWidgets at least could benefit from
> something like this. Is there any chance we could integrate it into
> Cygwin as a package?
>
> Best,
>
> Hamish
>
>
> --
> Problem reports:      https://cygwin.com/problems.html
> FAQ:                  https://cygwin.com/faq/
> Documentation:        https://cygwin.com/docs.html
> Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple