# log4cpp::threading Namespace Reference

## Classes

class | ThreadLocalDataHolder
| This class holds Thread local data of type T, i.e. More...
class | MSMutex
| A simple object wrapper around CreateMutex() and DeleteMutex(). More...
class | MSScopedLock
| A simple object wrapper around WaitForSingleObject() and ReleaseMutex(). More...
class | Mutex
class | ScopedLock
| definition of ScopedLock; More...

## Typedefs

typedef boost::mutex | Mutex
typedef boost::mutex::scoped_lock | ScopedLock
typedef int | Mutex
| Dummy type 'int' for Mutex.
typedef int | ScopedLock
| Dummy type 'int' defintion of ScopedLock;.
typedef MSMutex | Mutex
| A simple, non recursive Mutex.
typedef MSScopedLock | ScopedLock
| A simple "resource acquisition is initialization" idiom type lock for Mutex.
typedef omni_mutex | Mutex
| A simple, non recursive Mutex.
typedef omni_mutex_lock | ScopedLock
| A simple "resource acquisition is initialization" idiom type lock for Mutex.

## Functions

static std::string | getThreadId ()
| returns the thread ID

## Typedef Documentation

typedef omni_mutex log4cpp::threading::Mutex

A simple, non recursive Mutex.

Equivalent to Boost.Threads boost::mutex

typedef MSMutex log4cpp::threading::Mutex

A simple, non recursive Mutex.

typedef int log4cpp::threading::Mutex

Dummy type 'int' for Mutex.

Yes, this adds a bit of overhead in the for of extra memory, but unfortunately 'void' is illegal.

typedef boost::mutex log4cpp::threading::Mutex

typedef omni_mutex_lock log4cpp::threading::ScopedLock

A simple "resource acquisition is initialization" idiom type lock for Mutex.

Equivalent to Boost.Threads boost::scoped_lock.

typedef MSScopedLock log4cpp::threading::ScopedLock

A simple "resource acquisition is initialization" idiom type lock for Mutex.

typedef int log4cpp::threading::ScopedLock

Dummy type 'int' defintion of ScopedLock;.

typedef boost::mutex::scoped_lock log4cpp::threading::ScopedLock

## Function Documentation

std::string log4cpp::threading::getThreadId | ( |  | ) | `[static]`

returns the thread ID

What these identifiers look like is completely up to the underlying thread library.