DragonFly BSD
DragonFly bugs List (threaded) for 2006-06
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Unexpected soft update inconsistency


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Sun, 11 Jun 2006 17:44:29 -0700 (PDT)

: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@xxxxxxxxxxxxx>



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]