=head1 NAME APR::ThreadMutex - Perl API for APR thread mutexes =head1 Synopsis use APR::ThreadMutex (); my $mutex = APR::ThreadMutex->new($r->pool); $mutex->lock; $mutex->unlock; $mutex->trylock; =head1 Description C<APR::ThreadMutex> interfaces APR thread mutexes. =head1 API C<APR::ThreadMutex> provides the following functions and/or methods: =head1 Unsupported API C<APR::ThreadMutex> also provides auto-generated Perl interface for a few other methods which aren't tested at the moment and therefore their API is a subject to change. These methods will be finalized later as a need arises. If you want to rely on any of the following methods please contact the L<the mod_perl development mailing list|maillist::dev> so we can help each other take the steps necessary to shift the method to an officially supported API. =head2 C<DESTROY> META: Autogenerated - needs to be reviewed/completed Destroy the mutex and free the memory associated with the lock. $mutex->DESTROY(); =over 4 =item obj: C<$mutex> ( C<L<APR::ThreadMutex object|docs::2.0::api::APR::ThreadMutex>> ) the mutex to destroy. =item ret: no return value =item since: subject to change =back =head2 C<lock> META: Autogenerated - needs to be reviewed/completed Acquire the lock for the given mutex. If the mutex is already locked, the current thread will be put to sleep until the lock becomes available. $ret = $mutex->lock(); =over 4 =item obj: C<$mutex> ( C<L<APR::ThreadMutex object|docs::2.0::api::APR::ThreadMutex>> ) the mutex on which to acquire the lock. =item ret: C<$ret> ( integer ) =item since: subject to change =back =head2 C<new> Create a new mutex my $mutex = APR::ThreadMutex->new($p); =over =item obj: C<APR::ThreadMutex> ( class name ) =item arg1: C<$p> ( C<L<APR::Pool object|docs::2.0::api::APR::Pool>> ) =item ret: C<$mutex> ( C<L<APR::ThreadMutex object|docs::2.0::api::APR::ThreadMutex>> ) =item since: subject to change =back =head2 C<pool_get> META: Autogenerated - needs to be reviewed/completed META: should probably be renamed to pool(), like all other pool accessors Get the pool used by this thread_mutex. $ret = $obj->pool_get(); =over 4 =item obj: C<$obj> ( C<L<APR::ThreadMutex object|docs::2.0::api::APR::ThreadMutex>> ) =item ret: C<$ret> ( C<L<APR::Pool object|docs::2.0::api::APR::Pool>> ) apr_pool_t the pool =item since: subject to change =back =head2 C<trylock> META: Autogenerated - needs to be reviewed/completed Attempt to acquire the lock for the given mutex. If the mutex has already been acquired, the call returns immediately with APR_EBUSY. Note: it is important that the APR_STATUS_IS_EBUSY(s) macro be used to determine if the return value was APR_EBUSY, for portability reasons. $ret = $mutex->trylock(); =over 4 =item obj: C<$mutex> ( C<L<APR::ThreadMutex object|docs::2.0::api::APR::ThreadMutex>> ) the mutex on which to attempt the lock acquiring. =item ret: C<$ret> (integer) =item since: subject to change =back =head2 C<unlock> META: Autogenerated - needs to be reviewed/completed Release the lock for the given mutex. $ret = $mutex->unlock(); =over 4 =item obj: C<$mutex> ( C<L<APR::ThreadMutex object|docs::2.0::api::APR::ThreadMutex>> ) the mutex from which to release the lock. =item ret: C<$ret> ( integer ) =item since: subject to change =back =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 contributors|about::contributors::people>. =cut