Unexpected soft update inconsistency
Matthew Dillon
dillon at apollo.backplane.com
Sun Jun 11 17:46:04 PDT 2006
:libc_r is doing that. E.g. gmake calls a threaded program, the program
:sets non-blocking mode and gmake tries to write something to stdout when
:it is blocking. This results in the error bit getting set and the error
:2 to occur during cleanup.
:
:Joerg
The FNONBLOCK flag is a per-file-pointer flag. Hmm. I see two possible
solutions:
(1) A per-descriptor flag which libc_r can set, like close-on-exec
(FD_CLOEXEC). We already have most of the infrastructure required,
including a flags variable that is passed to the FP read and write
code (used with FOF_OFFSET).
(2) new system call entry points for non-blocking read and write, then
libc_r can completely ignore FNONBLOCK and just use the new entry
points.
Otherwise this little problem is going to bite us over and over again
as time passes.
I'm thinking (2) might be the only real solution.
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
More information about the Bugs
mailing list