lkml.org 
[lkml]   [2005]   [Jan]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: Make pipe data structure be a circular list of pages, rather
    From
    Date
    On Sad, 2005-01-08 at 18:41, Linus Torvalds wrote:
    > For all of those that are valid (certainly the signal case), you need to
    > put the pipe into nonblocking mode anyway, so I don't think coalescing is
    > really needed. SuS certainly does _not_ seem guarantee that you can do
    > many nonblocking writes (small _or_ big). Let's see if somebody reports
    > any trouble with the new world order.

    It breaks netscape 3 if I simulate it (but thats picking an app I know
    makes silly assumptions).

    >From the rules pasted below I think the 1 byte at a time 4K write is
    guaranteed or at least strongly implied. The single write atomicity is
    guaranteed but that is if anything made easier by the changes.

    (From pathconf)

    fpathconf(_PC_PATH_BUF)

    returns the size of the pipe buffer, where filedes must
    refer
    to a pipe or FIFO and path must refer to a FIFO. The
    corre-
    sponding macro is _POSIX_PIPE_BUF.

    (From pwrite)

    Write requests of {PIPE_BUF} bytes or less shall not be interleaved with
    data from other processes doing writes on the same pipe. Writes of
    greater than {PIPE_BUF} bytes may have data interleaved, on arbitrary
    boundaries, with writes by other processes, whether or not the
    O_NONBLOCK flag of the file status flags is set.

    [of O_NDELAY for pipe]
    A write request for {PIPE_BUF} or fewer bytes shall have the following
    effect: if there is sufficient space available in the pipe, write()
    shall transfer all the data and return the number of bytes requested.
    Otherwise, write() shall transfer no data and return -1 with errno set
    to [EAGAIN].


    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 14:09    [W:2.089 / U:0.232 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site