: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 
                                        <[EMAIL PROTECTED]>

Reply via email to