25#ifndef LOG4CPLUS_THREAD_SYNCPRIMS_H
26#define LOG4CPLUS_THREAD_SYNCPRIMS_H
30#if defined (LOG4CPLUS_HAVE_PRAGMA_ONCE)
35#include <condition_variable>
41template <
typename SyncPrim>
113#if ! defined (LOG4CPLUS_SINGLE_THREADED)
114 mutable std::mutex mtx;
115 mutable std::condition_variable cv;
116 mutable unsigned maximum;
117 mutable unsigned val;
139#if ! defined (LOG4CPLUS_SINGLE_THREADED)
140 mutable std::mutex mtx;
141 mutable std::condition_variable cv;
142 mutable bool signaled;
143 mutable unsigned sigcount;
155template <
typename SyncPrim, void (SyncPrim:: * lock_func) ()
const,
156 void (SyncPrim:: * unlock_func) ()
const>
208template <
typename SyncPrim>
215template <
typename SyncPrim>
224template <
typename SyncPrim>
233template <
typename SyncPrim>
242template <
typename SyncPrim>
251template <
typename SyncPrim>
260template <
typename SyncPrim>
278template <
typename SyncPrim>
291template <
typename SyncPrim, void (SyncPrim:: * lock_func) ()
const,
292 void (SyncPrim:: * unlock_func) ()
const>
301template <
typename SyncPrim, void (SyncPrim:: * lock_func) ()
const,
302 void (SyncPrim:: * unlock_func) ()
const>
307 (sp->*unlock_func) ();
311template <
typename SyncPrim, void (SyncPrim:: * lock_func) ()
const,
312 void (SyncPrim:: * unlock_func) ()
const>
321template <
typename SyncPrim, void (SyncPrim:: * lock_func) ()
const,
322 void (SyncPrim:: * unlock_func) ()
const>
327 (sp->*unlock_func) ();
331template <
typename SyncPrim, void (SyncPrim:: * lock_func) ()
const,
332 void (SyncPrim:: * unlock_func) ()
const>
341template <
typename SyncPrim, void (SyncPrim:: * lock_func) ()
const,
342 void (SyncPrim:: * unlock_func) ()
const>
ManualResetEvent(ManualResetEvent const &)=delete
ManualResetEvent(bool=false)
bool timed_wait(unsigned long msec) const
Mutex(Mutex const &)=delete
Semaphore(unsigned max, unsigned initial)
Semaphore(Semaphore const &)=delete
SimpleMutex(SimpleMutex const &)=delete
SyncGuardFunc(SyncPrim const &)
void attach(SyncPrim const &)
SyncGuard & operator=(SyncGuard const &)=delete
void attach_and_lock(SyncPrim const &)
SyncGuard(SyncPrim const &)
SyncGuard(SyncGuard const &)=delete
void attach(SyncPrim const &)
#define LOG4CPLUS_THREADED(x)
SyncGuardFunc< SharedMutex, &SharedMutex::rdlock, &SharedMutex::rdunlock > SharedMutexReaderGuard
SyncGuard< Mutex > MutexGuard
SyncGuard< SimpleMutex > SimpleMutexGuard
SyncGuardFunc< SharedMutex, &SharedMutex::wrlock, &SharedMutex::wrunlock > SharedMutexWriterGuard
SyncGuard< Semaphore > SemaphoreGuard