www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2026/03/31/09:57:07

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 62VDv60H2692961
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 62VDv60H2692961
Authentication-Results: delorie.com;
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=NSUT4BSu
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 05D774BB58B4
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1774965425;
bh=lvWLnDNxykZ8P9GCioJtc4NRpLwtBqU4bKWSfIQ9e1c=;
h=Date:Subject:References:To:In-Reply-To:List-Id:List-Unsubscribe:
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
From;
b=NSUT4BSuawOt9ZJECaGcnwoV0/ApgTCAHldFkVTjaNDZxX+VNrNKMIC4bSwSTMpMb
LQ3yDGYEc9GjVDHUEO1LXuGf4GCgQW0WQywtPft+0H1ma/aKHiKt5syDnAUOnQA7F4
zbNsB9/qdf5xkGX6BXtJc6itcBp4Z8/QA/iBGeI8=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A452A4BB58B4
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A452A4BB58B4
ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1774965405; cv=pass;
b=sRt8AFjpzRGkDjqtm8B0yjkEdzkk7l7Hts4mOrrlFWx1pvEtPGgEuzTEWEm8xPEKnbeqLRrkXb3LvLwJ1nOjblnXwMh6fpkw9XT5F6kWgdBOnz70pQ+u8ya+of0RCUEsm6teRtggA8+guvbIig2zoi5Cc96glYfCtzDBlWLhC2E=
ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key;
t=1774965405; c=relaxed/simple;
bh=Qlwu9iA7b4k2GOyPdJBFcWMqciPIyRfxk8nWc9Y1urA=;
h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From;
b=ioeZdB3FIg7HhRiDPcukRldaaTnPzbunGACU4c+NQcumM2Q+HlqbYKcW9R5hGimtBU+i5VslGQmTJdwBPhdrhGZ8XIvjnCtxVgz04B8+RR58mCwhhZFDYhpbTTQobIEchyYkF2eWTpXcjqBMFBXIsVqAJdWXFXOLOtWI5R3KWYs=
ARC-Authentication-Results: i=2; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A452A4BB58B4
ARC-Seal: i=1; a=rsa-sha256; t=1774965402; cv=none; d=zohomail.eu; s=zohoarc;
b=TQfFGsodQB7i3/BTftg8mXJ22B06PAS4HEoAB6fnEKAjih2433JtZljZcXi4+n+CV5DzCJ2fRC7ucrGWLztNVqauMAp1hySlH8eIW16XchU3njtc5Jx3dVHFHhpUWpmuTaDoJI/9BtYibRitf3PEjVVUSPBvdjtqBRNXO6AOFnc=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.eu;
s=zohoarc; t=1774965402;
h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:Subject:To:To:Message-Id:Reply-To:Cc;
bh=UeLuIp9qhj05kZ/3ewHZY8hDjCnICCvhjL1WfuGiUfc=;
b=H8w5yVK7VmoA5aFw1j3x0CGxfmW7vEaDb1CbvTuVtJ2iYi05FvTDzN2+2pmlfTybiHwfllbndY6lFOF8A+FHz5USuFHfojyqPpFmQ10SF8xYdKmZLOT2+CwZlA/0RCksneNhHG0CmzTROnPKxc5yUxIAoXHpl+eDANAT9w7P9SE=
ARC-Authentication-Results: i=1; mx.zohomail.eu;
dkim=pass header.i=hamishmb.com;
spf=pass smtp.mailfrom=cygwin AT hamishmb DOT com;
dmarc=pass header.from=<cygwin AT hamishmb DOT com>
Message-ID: <b6a36c0d-51c0-4447-a652-59b228017cc1@hamishmb.com>
Date: Tue, 31 Mar 2026 14:56:38 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: epoll implementation for Cygwin
References: <8d05ff34-1f75-42c1-b72a-621163a68cbf AT hamishmb DOT com>
<CAA3frXTwAzO+Qdd3Fd=Vdj+1ZbXrMdTSHEDwsWoa_1ms1WmwUg AT mail DOT gmail DOT com>
<dfa98004-1248-d727-d4e7-2b8d53d4d193 AT wisemo DOT com>
To: The Cygwin Mailing List <cygwin AT cygwin DOT com>
In-Reply-To: <dfa98004-1248-d727-d4e7-2b8d53d4d193@wisemo.com>
X-ZohoMailClient: External
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Hamish McIntyre-Bhatty via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Hamish McIntyre-Bhatty <cygwin AT hamishmb DOT com>
Errors-To: cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com>
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 62VDv60H2692961

On 23/03/2026 08:02, Jakob Bohm via Cygwin wrote:
> On 21/03/2026 01:51, Daisuke Fujimura via Cygwin wrote:
>> 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.

Ah, I see. Thanks for letting me know this. As sys/epoll.h isn't a hard 
requirement for wxWidgets, I guess using this may be of little to no 
benefit then.

>>
>> 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.
> Indeed, Windows sockets (WinSock2) has a more powerful implementation of
> select() than traditional POSIX systems like Linux.  In particular,
> WinSock native select uses true sets for the handle lists and isn't
> limited to the low valued handles like on Linux, though cygwin may be
> emulating the Linux-style FD_SET implementation.  There is also the
> WSAEventSelect() native function which maps the wait for a single
> (socket,condition) to a wait for a single Win32 Event (an NT kernel
> KEVENT, which is a tiny object), and the core Win32 API has the
> WaitForMultipleObject() family of functions which can wait for up to 64
> such Win32 events or a timeout in parallel, allowing easy handling of
> 63 events per thread in a thread pool (Using the 64th slot for
> signalling changes to the list of events).
> 
>> 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.

That makes a lot of sense. Thanks again both.

>>
>> Best regards,
>>
>> Daisuke Fujimura
>>
>> On Sat, Mar 21, 2026 at 6:03 AM Hamish McIntyre-Bhatty via Cygwin
>> <cygwin AT cygwin DOT com> 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?
> 
> Enjoy
> 
> Jakob

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019