=head1 NAME

APR::BucketAlloc - Perl API for Bucket Allocation

=head1 Synopsis

  use APR::BucketAlloc ();
  $ba = APR::BucketAlloc->new($pool);

=head1 Description

C<APR::BucketAlloc> is used for bucket allocation.

=head2 C<new>

Create an C<APR::BucketAlloc> object:

  $ba = APR::BucketAlloc->new($pool);

=over 4

=item class: C<APR::BucketAlloc>

=item arg1: C<$pool>
( C<L<APR::Pool object|docs::2.0::api::APR::Pool>> )

The pool used to create this object.

=item ret: C<$ba>
( C<L<APR::BucketAlloc object|docs::2.0::api::APR::BucketAlloc>> )

The new object.

=item since: 2.0.00


This bucket allocation list (freelist) is used to create new buckets
(via C<L<APR::Bucket-E<gt>new|docs::2.0::api::APR::Bucket/C_new_>>)
and bucket brigades (via

You only need to use this method if you aren't running under httpd.
If you are running under mod_perl, you already have a bucket
allocation available via


  use APR::BucketAlloc ();
  use APR::Pool ();
  my $ba = APR::BucketAlloc->(APR::Pool->pool);
  my $eos_b = APR::Bucket::eos_create($ba);

=head2 C<destroy>

Destroy an C<L<APR::BucketAlloc


=over 4

=item arg1: C<$ba>
( C<L<APR::BucketAlloc object|docs::2.0::api::APR::BucketAlloc>> )

The freelist to destroy.

=item ret: no return value

=item since: 2.0.00


Once destroyed this object may not be used again.

You need to destroy C<$ba> B<only> if you have created it via
C<L<APR::BucketAlloc-E<gt>new|/C_new_>>. If you try to destroy an
allocation not created by this method, you will get a segmentation

Moreover normally it is not necessary to destroy allocators, since the
pool which created them will destroy them during that pool's cleanup

=head1 See Also

L<mod_perl 2.0 documentation|docs::2.0::index>.

=head1 Copyright

mod_perl 2.0 and its core modules are copyrighted under
The Apache Software License, Version 2.0.

=head1 Authors

L<The mod_perl development team and numerous