bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH,HURD] hurdselect: Step1, code split preparations


From: Svante Signell
Subject: Re: [PATCH,HURD] hurdselect: Step1, code split preparations
Date: Tue, 22 Jan 2013 20:40:11 +0100

On Tue, 2013-01-22 at 19:15 +0100, Pino Toscano wrote:
> Hi,
> 
> Alle martedì 22 gennaio 2013, Svante Signell ha scritto:
> > Attached is the first patch for a 3-way split of hurdselect.c into
> > three cases: DELAY, POLL, SELECT
> 
> What's the use of of the separate DELAY case?
> Basically, it seems to be optimizing just a very specific case, i.e.:
>   select(0, ..., &timeout);
> while, on the other hand, code like
>   fd_set empty;
>   FD_ZERO(&empty);
>   select(1, &empty, &empty, &empty, &timeout);
> (or with any nfd > 0) with your changes would be considered as SELECT.

If nfds>0 it depends on pollfds if the case is POLL or SELECT?
 
>From the man page for select:
Some code calls select() with all three sets empty, nfds zero, and a
non-NULL timeout as a fairly portable way to sleep with subsecond
precision.

And of course calling poll with nfds=0 is equal to a delay too if
timeout != 0

> After all, the code checking the arguments should take care of handling
> the "no descriptors" situations already, so the separate DELAY is
> simply redundant (being a subset of SELECT).
> 
> > leading to a more POSIX conforming POLL.
> 
> theorically, poll could be fixed also without restructing hurdselect...

We have discussed this issue before. Let's see what others say.

> > Starting point is the hurdselect.c created by all Debian patches
> > applied up to eglibc-2.13-38 + 3 additional patches:
> 
> Note that if you want to send patches upstream, your code must apply
> on master branch of glibc.git, not on some old glibc version with
> distribution-specific patches.

OK, will resend to debian-hurd instead...

> > +      union
> > +       {
> > [...]
> 
> This block must be properly indented.

The code was moved, therefore the missing indentation update. Is this
really important at this stage?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]