---
name: "APR::ThreadMutex"
section: "3pm"
platform: "linux"
package: "libapache2-mod-perl2"
version: "2.0.13-2+b2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/APR::ThreadMutex"
---

# APR::ThreadMutex(3pm)

Perl API for APR thread mutexes

## 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.
