- NAME
- Synopsis
- Description
- API
- Unsupported API
  - DESTROY
  - lock
  - new
  - pool_get
  - trylock
  - unlock
- See Also
- Copyright
- Authors

# NAME

APR::ThreadMutex - Perl API for APR thread mutexes

# Synopsis

    use APR::ThreadMutex ();

    my $mutex = APR::ThreadMutex->new($r->pool);
    $mutex->lock;
    $mutex->unlock;
    $mutex->trylock;

# Description

`APR::ThreadMutex` interfaces APR thread mutexes.

# API

`APR::ThreadMutex` provides the following functions and/or methods:

# Unsupported API

`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 the mod_perl development mailing list so we can help each other take the steps necessary to shift the method to an officially supported API.

## `DESTROY`

META: Autogenerated - needs to be reviewed/completed

Destroy the mutex and free the memory associated with the lock.

    $mutex->DESTROY();

obj: `$mutex` ( `APR::ThreadMutex object` )

  the mutex to destroy.

ret: no return value
since: subject to change

## `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();

obj: `$mutex` ( `APR::ThreadMutex object` )

  the mutex on which to acquire the lock.

ret: `$ret` ( integer )
since: subject to change

## `new`

Create a new mutex

    my $mutex = APR::ThreadMutex->new($p);

obj: `APR::ThreadMutex` ( class name )
arg1: `$p` ( `APR::Pool object` )
ret: `$mutex` ( `APR::ThreadMutex object` )
since: subject to change

## `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();

obj: `$obj` ( `APR::ThreadMutex object` )
ret: `$ret` ( `APR::Pool object` )

  apr_pool_t the pool

since: subject to change

## `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();

obj: `$mutex` ( `APR::ThreadMutex object` )

  the mutex on which to attempt the lock acquiring.

ret: `$ret` (integer)
since: subject to change

## `unlock`

META: Autogenerated - needs to be reviewed/completed

Release the lock for the given mutex.

    $ret = $mutex->unlock();

obj: `$mutex` ( `APR::ThreadMutex object` )

  the mutex from which to release the lock.

ret: `$ret` ( integer )
since: subject to change

# See Also

mod_perl 2.0 documentation.

# Copyright

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

# Authors

The mod_perl development team and numerous contributors.