Stas Bekman <[EMAIL PROTECTED]> writes:
> Joe Schaefer wrote:
[...]
>> $bucket->setaside($pool);
>> that means "this bucket may need to live as long as this pool does".
>> If we change the semantics to "this pool needs to live as long as
>> this bucket does", IMO we've made a mistake. If you agree, then I
>> think mpxs_APR__Bucket_setaside can be removed from the list.
>
> I haven't analized the actual methods yet, other than checking that
> they return an object.
>
> I agree that this is a tricky issue with this method. But if you don't
> tie the pool along with the setaside data, how is it going to be
> preserved if the pool will be gone? the setaside data will become
> corrupted, no?
Sure, that could happen. Thinking about it a bit more, perhaps your
first guess is right. Restating the semantics with a cleaner
separation of (Perl) variable from (C) value:
$bucket->setaside($pool) means
the apr_bucket_t attached to this APR::Bucket object needs to
survive as long as the underlying apr_pool_t. However, if
that apr_pool_t is owned by some APR::Pool object, that object
should [*] survive at least as long as the APR::Bucket object does.
Agreed? If so, then setaside() does belong on the list.
[*] - "should", not "must", because people can always explicitly
destroy the pool.
--
Joe Schaefer
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]