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