Re: RFC: A revised timerfd API

David Härdeman
2007-10-01T16:22:34Z

On Sat, Sep 22, 2007 at 06:07:14PM +0200, Michael Kerrisk wrote:
>On 9/22/07, Bernd Eckenfels <ecki@lina.inka.de> wrote:
>> In article <46F514C9.5010208@gmx.net> you wrote:
>> > 1. This design stretches the POSIX timers API in strange
>> > ways.
>>
>> Maybe it is possible to reimplement the POSIX API in usermode using the
>> kernel's FD implementation?
>
>It's a clever idea... Without thinking on it too long, I'm not sure
>whether or not there might be some details which would make this
>difficult.

It seems to be a dangerous idea. It has the potential of breaking
userspace applications that rely on POSIX timers not creating fd's.

Image code like this:

/* Close stdin, stdout, stderr */
close(0);
close(1);
close(2);

/* Oh, a timer would be nice */
timer_create(x, y, z);

/* Create new stdin, stdout, stderr */
fd = open("/dev/null", flags);
dup(fd);
dup(fd);

Unless timer_create does some magic to avoid using the lowest available
fd, this would suddenly break as the timerfd would be fd 0.

--
David Härdeman