From: tom.rmadilo on
On Oct 14, 12:41 am, Alexandre Ferrieux <alexandre.ferri...(a)gmail.com>
wrote:
> The only problem is that pending
> universal availability of epoll, the Tcl core will need to maintain an
> ifdef'ed pair of implementations. Eeek.

AOLserver has an implimentation/abstraction/ifdef for poll:

http://junom.com/gitweb/gitweb.perl?p=aolserver.git;a=blob;f=aolserver/nsd/sock.c#l745

When poll isn't available, an emulation using select is provided. Of
course, it isn't epoll.
From: Alexandre Ferrieux on
On 14 oct, 18:20, "tom.rmadilo" <tom.rmad...(a)gmail.com> wrote:
>
> When poll isn't available, an emulation using select is provided. Of
> course, it isn't epoll.

Then why mention this ? Poll is just like select wrt scaling up: it
doesn't; only epoll does.

-Alex

From: Donal K. Fellows on
On 14 Oct, 07:48, Alexandre Ferrieux <alexandre.ferri...(a)gmail.com>
wrote:
> On Oct 14, 3:30 pm, "Donal K. Fellows"
> > On at least some OSes, you can set it at build-time.
> Yes. Recompile your libc, reboot, and pray.

No. Their libc is built without the restriction; the fixed value of
FD_SETSIZE is just a feature of the headers. But I don't know if glibc
supports that.

Donal.
From: Donal K. Fellows on
On 14 Oct, 12:01, Alexandre Ferrieux <alexandre.ferri...(a)gmail.com>
wrote:
> Then why mention this ? Poll is just like select wrt scaling up: it
> doesn't; only epoll does.

But epoll is (of course) completely unportable.

Donal.
From: tom.rmadilo on
On Oct 14, 11:01 am, Alexandre Ferrieux <alexandre.ferri...(a)gmail.com>
wrote:
> On 14 oct, 18:20, "tom.rmadilo" <tom.rmad...(a)gmail.com> wrote:

> > When poll isn't available, an emulation using select is provided. Of
> > course, it isn't epoll.
>
> Then why mention this ? Poll is just like select wrt scaling up: it
> doesn't; only epoll does.

My point is that you must first harmonize epoll with the other two
possibilities. epoll must first work with the rest of the io code. The
example I gave shows that a successful abstraction of poll only
involved one tiny ifdef. But if epoll requires extensive modification
to other levels of the io API, it probably can't be used effectively.
Since this code was stolen from the GNU C Library, maybe an epoll
emulation also exists.