On Sun, Sep 29, 2002 at 06:55:27PM -0700, Brian Pane wrote:
> On Sun, 2002-09-29 at 17:19, Greg Stein wrote:
>...
> > One thing I just realized, though: if there is no flush function, then a
> > transient could be a problem. I just double-checked apr_brigade_write() and
> > it switches over to HEAP buckets for that case. Should _writev follow the
> > same pattern?
> 
> You mean, in case the caller then deletes the underlying storage for the
> strings in the iovec?  Yes, in that case we should use heap buckets.

Right.

> I'll make a change for this.

You da man!

> Both the _writev and the _write functions
> really need a warning in the documentation: "not guaranteed to be zero
> copy, so build your own buckets if you're trying to pass very large
> amounts of data."

Well... amend that a bit: the caller doesn't have to build buckets IF they
pass a flush function. It will be zero-copy when a flush func is provided.

Really... *all* calls should have a flush function to encourage zero copy
operation. If a flush function is not used, then the caller should revisit
what they're doing with the brigade.

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

Reply via email to