10#ifndef _LOG4CPP_THREADING_MSTHREADS_HH
11#define _LOG4CPP_THREADING_MSTHREADS_HH
21#define LOG4CPP_UNDEFINE_NOGDI
24#ifndef WIN32_LEAN_AND_MEAN
25#define WIN32_LEAN_AND_MEAN
26#define LOG4CPP_UNDEFINE_WIN32_LEAN_AND_MEAN
31#ifdef LOG4CPP_UNDEFINE_NOGDI
35#ifdef LOG4CPP_UNDEFINE_WIN32_LEAN_AND_MEAN
36#undef WIN32_LEAN_AND_MEAN
56 InitializeCriticalSection(&_criticalSection);
59 DeleteCriticalSection(&_criticalSection);
62 return &_criticalSection;
67 CRITICAL_SECTION _criticalSection;
73 typedef MSMutex
Mutex;
83 EnterCriticalSection(_criticalSection);
87 LeaveCriticalSection(_criticalSection);
92 LPCRITICAL_SECTION _criticalSection;
107 template <
typename T>
class ThreadLocalDataHolder {
121 return (T*)TlsGetValue(_key);
150 T* result = (T*)TlsGetValue(_key);
151 TlsSetValue(_key, NULL);
162 T* thing = (T*)TlsGetValue(_key);
164 TlsSetValue(_key, p);
#define LOG4CPP_EXPORT
Definition Export.hh:26
A simple object wrapper around CreateMutex() and DeleteMutex().
Definition MSThreads.hh:53
LPCRITICAL_SECTION getCriticalSection()
Definition MSThreads.hh:61
MSMutex()
Definition MSThreads.hh:55
~MSMutex()
Definition MSThreads.hh:58
A simple object wrapper around WaitForSingleObject() and ReleaseMutex().
Definition MSThreads.hh:79
MSScopedLock(MSMutex &mutex)
Definition MSThreads.hh:81
~MSScopedLock()
Definition MSThreads.hh:86
~ThreadLocalDataHolder()
Definition MSThreads.hh:111
ThreadLocalDataHolder()
Definition MSThreads.hh:109
T * operator->() const
Obtains the Object held for the current thread.
Definition MSThreads.hh:130
T & operator*() const
Obtains the Object held for the current thread.
Definition MSThreads.hh:139
T * get() const
Obtains the Object held for the current thread.
Definition MSThreads.hh:120
void reset(T *p=NULL)
Sets a new Object to be held for the current thread.
Definition MSThreads.hh:161
T * release()
Releases the Object held for the current thread.
Definition MSThreads.hh:149
boost::mutex Mutex
Dummy type 'int' for Mutex.
Definition BoostThreads.hh:29
boost::mutex::scoped_lock ScopedLock
Dummy type 'int' defintion of ScopedLock;.
Definition BoostThreads.hh:30
static std::string getThreadId()
Return an identifier for the current thread.
Definition BoostThreads.hh:22
The top level namespace for all 'Log for C++' types and classes.
Definition AbortAppender.hh:16