On 5 Oct 2001 [EMAIL PROTECTED] wrote:

>   ap_brigade_partition does a blocking read.

Correct.

>   Ryan, Greg, and others can figure out if ap_brigade_partition should
>   be tweaked to handle AP_NONBLOCK_READ natively.  I'm of a mixed mind,
>   but this addresses the short term need.

No, it shouldn't.  -1.

If you ask to partition the brigade at a certain byte offset and
apr_brigade_partition() encounters a bucket on which it must block, it
should do so.  Callers of apr_brigade_partition() don't want to have to
handle nonblocking returns... all they want is the brigade split at that
offset.  If it's nonblocking, it returns and is basically saying "Well, I
_might_ be able to partition at that offset, but I'm not sure right now.
Ask me again later."  All the caller's going to be able to do (because it
really DID want a partition at that offset) is call back into
apr_brigade_partition in a tight loop until the thing does what it wanted.
Much much better to just have apr_brigade_partition block so that the
result is sensible.  Fewer CPU cycles wasted, fewer cases that the caller
has to handle.  If you want nonblocking, do it yourself.

(Besides, Ryan already tried this once and realized that it was bad and
reverted his change.)

--Cliff

-----------------------------------------------------------
   Cliff Woolley
   [EMAIL PROTECTED]
   Charlottesville, VA


Reply via email to