18 #ifndef _LOG4CXX_HELPERS_MUTEX_H 19 #define _LOG4CXX_HELPERS_MUTEX_H 21 #include <log4cxx/log4cxx.h> 24 #include <apr_portable.h> 29 struct apr_thread_mutex_t;
31 struct apr_thread_rwlock_t;
47 apr_thread_mutex_t* getAPRMutex()
const;
52 apr_thread_mutex_t* mutex;
66 class LOG4CXX_EXPORT RWMutex
70 RWMutex(apr_pool_t* p);
74 void rdUnlock()
const;
77 void wrUnlock()
const;
80 mutable std::atomic<apr_os_thread_t> id;
81 mutable unsigned count;
82 RWMutex(
const RWMutex&);
83 RWMutex& operator=(
const RWMutex&);
84 apr_thread_rwlock_t* mutex;
89 #define SHARED_MUTEX log4cxx::helpers::RWMutex 93 #define SHARED_MUTEX log4cxx::helpers::Mutex 97 #define SHARED_MUTEX_INIT(mutex, p) mutex(p) 99 #if defined(NON_BLOCKING) 105 struct SemaphoreImpl;
107 class LOG4CXX_EXPORT Semaphore
114 void signalAll()
const;
117 Semaphore(
const Semaphore&);
118 Semaphore& operator=(
const Semaphore&);
125 #endif // NON_BLOCKING 127 #endif //_LOG4CXX_HELPERS_MUTEX_H
Definition: appender.h:33