Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Fri, 19 Mar 2021 08:38:07 -0400
From: Rich Felker <dalias@...c.org>
To: Paulius Zaleckas <paulius.zaleckas@...il.com>
Cc: musl@...ts.openwall.com
Subject: Re: select() does not return remaining timeout

On Fri, Mar 19, 2021 at 01:25:53PM +0200, Paulius Zaleckas wrote:
> Linux select syscall returns remaining timeout in tv pointer, but
> since musl uses local variable for syscall it does not update tv for
> caller.

See commit 722a1ae3351a03ab25010dbebd492eced664853b. Previously it was
inconsistent and we sometimes (depending on arch) let the kernel
behavior through, but the kernel behavior actually doesn't fit within
the standard's allowance for select to modify the tv (which only
allows it upon successful completion). So rather than trying to
preserve something that was wrong with respect to the spec as written,
the behavior was just dropped.

In any case, it has always been an allowance for legacy behavior, not
a requirement, and programs which are expecting it to reflect
remaining time are not correct or portable.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.