---
name: "ost_ThreadLock"
section: "3"
platform: "linux"
package: "libcommoncpp2-doc"
version: "1.8.1-10"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/ost_ThreadLock"
---

# ost\_ThreadLock(3)

The ThreadLock class impliments a thread rwlock for optimal reader performance on systems which have rwlock support, and reverts to a simple mutex for those that do not.

## NAME

ost::ThreadLock - The **ThreadLock** class impliments a thread rwlock for optimal reader performance on systems which have rwlock support, and reverts to a simple mutex for those that do not.

## SYNOPSIS

`#include <thread.h>`

### Public Member Functions

**ThreadLock** ()\
 Create a process shared thread lock object.  virtual **~ThreadLock** ()\
 Destroy a process shared thread lock object.  void **readLock** (void)\
 Aquire a read lock for the current object.  void **writeLock** (void)\
 Aquire a write lock for the current object.  bool **tryReadLock** (void)\
 Attempt read lock for current object.  bool **tryWriteLock** (void)\
 Attempt write lock for current object.  void **unlock** (void)\
 Release any held locks.

## Detailed Description

The **ThreadLock** class impliments a thread rwlock for optimal reader performance on systems which have rwlock support, and reverts to a simple mutex for those that do not.

**Author**

David Sugar dyfet@ostel.com

Posix rwlock extension for protected access.

## Constructor & Destructor Documentation

### ost::ThreadLock::ThreadLock ()

Create a process shared thread lock object.

### virtual ost::ThreadLock::~ThreadLock ()` [virtual]`

Destroy a process shared thread lock object.

## Member Function Documentation

### void ost::ThreadLock::readLock (void)

Aquire a read lock for the current object.

Referenced by ost::ReadLock::ReadLock().

### bool ost::ThreadLock::tryReadLock (void)

Attempt read lock for current object.

**Returns**

true on success.

### bool ost::ThreadLock::tryWriteLock (void)

Attempt write lock for current object.

**Returns**

true on success.

### void ost::ThreadLock::unlock (void)

Release any held locks.

Referenced by ost::ReadLock::~ReadLock(), and ost::WriteLock::~WriteLock().

### void ost::ThreadLock::writeLock (void)

Aquire a write lock for the current object.

Referenced by ost::WriteLock::WriteLock().

## Author

Generated automatically by Doxygen for GNU CommonC++ from the source code.
