3 ms·
It's not a similar situation at all: Linux doesn't break POSIX semantics (well, not here: MADV_DONTNEED has an... "interesting" interpretation of POSIX, so ther
by qwertyuiop924 10y ago
It's not a similar situation at all: Linux doesn't break POSIX semantics (well, not here: MADV_DONTNEED has an... "interesting" interpretation of POSIX, so there's at least one violation, but that's not the exact topic of discussion, and seeing as it's not one of the most used syscalls in POSIX, it's less of a problem. Although it's still bad. If you're interested in the sins of the Linux kernel, you can go see Bryan Cantrill's lightning talk on the subject).
- vvhn 10y agoIf you closely enough at the spec, it is unclear if this actually a violation. Also, according to the developer, this same behavior was present from 10.3 to 10.9 ( Apple was certified to be compliant from 10.5 onwards which tells you that this isn't non conformant) and OS X did not even ship with a poll(2) implementation before 10.3 .
- qwertyuiop924 10y agoIf you look closely enough at the spec, almost anything is conformant. But it's generally acknowledged that breaking everybody's code is a Bad Thing. It's also possible that the test suite just doesn't check for this. In any case, the behavior is necessary for any application that polls against a set of fds of varying size, as the fd set may shrink to zero before expanding again, and and punishing the developer for not checking as special case that all other unixes handle automatically is pretty unfair.
- SysArchitect 10y agoBryan Cantrill's lightning talk: https://youtu.be/bg6-LVCHmGM?t=3521 https://youtu.be/bg6-LVCHmGM?t=3521