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

# ost\_ThreadKey(3)

This class allows the creation of a thread context unique 'pointer' that can be set and retrieved and can be used to create thread specific data areas for implementing 'thread safe' library routines.

## NAME

ost::ThreadKey - This class allows the creation of a thread context unique 'pointer' that can be set and retrieved and can be used to create thread specific data areas for implementing 'thread safe' library routines.

## SYNOPSIS

`#include <thread.h>`

### Public Member Functions

**ThreadKey** ()\
 Create a unique thread specific container.  virtual **~ThreadKey** ()\
 Destroy a thread specific container and any contents reserved.  void \* **getKey** (void)\
 Get the value of the pointer for the thread specific data container.  void **setKey** (void \*)\
 Set the value of the pointer for the current thread specific execution context.

### Friends

class **ThreadImpl**\

## Detailed Description

This class allows the creation of a thread context unique 'pointer' that can be set and retrieved and can be used to create thread specific data areas for implementing 'thread safe' library routines.

Finally, Common C++ supports a thread-safe 'AtomicCounter' class. This can often be used for reference counting without having to protect the counter with a separate **Mutex** counter. This lends to lighter-weight code.

**Author**

David Sugar dyfet@ostel.com

container for thread specific data storage.

## Constructor & Destructor Documentation

### ost::ThreadKey::ThreadKey ()

Create a unique thread specific container.

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

Destroy a thread specific container and any contents reserved.

## Member Function Documentation

### void\* ost::ThreadKey::getKey (void)

Get the value of the pointer for the thread specific data container. A unique pointer can be set for each execution context.

**Returns**

a unique void \* for each execution context.

### void ost::ThreadKey::setKey (void \*)

Set the value of the pointer for the current thread specific execution context. This can be used to store thread context specific data.

**Parameters**

*-* ptr to thread context specific data.

## Friends And Related Function Documentation

### friend class ThreadImpl` [friend]`

## Author

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