⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thread-config.h

📁 java开源的企业总线.xmlBlaster
💻 H
字号:
// Module:  Log4CPLUS// File:    thread-config.h// Created: 4/2003// Author:  Tad E. Smith////// Copyright (C) Tad E. Smith  All rights reserved.//// This software is published under the terms of the Apache Software// License version 1.1, a copy of which has been included with this// distribution in the LICENSE.APL file.///** @file */#ifndef LOG4CPLUS_HELPERS_THREAD_CONFIG_HEADER_#define LOG4CPLUS_HELPERS_THREAD_CONFIG_HEADER_#ifdef LOG4CPLUS_USE_PTHREADS#   include <pthread.h>#   define LOG4CPLUS_MUTEX_PTR_DECLARE pthread_mutex_t*#   define LOG4CPLUS_MUTEX_CREATE ::log4cplus::thread::createNewMutex()#   define LOG4CPLUS_MUTEX_ASSIGN( mutex_a, mutex_b) mutex_a = mutex_b#   define LOG4CPLUS_MUTEX_LOCK( mutex ) pthread_mutex_lock(mutex)#   define LOG4CPLUS_MUTEX_UNLOCK( mutex ) pthread_mutex_unlock(mutex)#   define LOG4CPLUS_MUTEX_FREE(mutex) ::log4cplus::thread::deleteMutex(mutex)#   define LOG4CPLUS_THREAD_KEY_TYPE pthread_t#   define LOG4CPLUS_GET_CURRENT_THREAD_NAME ::log4cplus::thread::getCurrentThreadName()#   define LOG4CPLUS_GET_CURRENT_THREAD pthread_self()#   define LOG4CPLUS_THREAD_LOCAL_TYPE pthread_key_t*#   define LOG4CPLUS_THREAD_LOCAL_INIT ::log4cplus::thread::createPthreadKey()#   define LOG4CPLUS_GET_THREAD_LOCAL_VALUE( key ) pthread_getspecific(*key)#   define LOG4CPLUS_SET_THREAD_LOCAL_VALUE( key, value ) pthread_setspecific(*key, value)#   define LOG4CPLUS_THREAD_LOCAL_CLEANUP( key ) pthread_key_delete(*key)namespace log4cplus {    namespace thread {        LOG4CPLUS_MUTEX_PTR_DECLARE createNewMutex();        void deleteMutex(LOG4CPLUS_MUTEX_PTR_DECLARE);        LOG4CPLUS_THREAD_LOCAL_TYPE createPthreadKey();    }}#elif defined(LOG4CPLUS_USE_WIN32_THREADS)#   include <windows.h>#   define LOG4CPLUS_MUTEX_PTR_DECLARE CRITICAL_SECTION*#   define LOG4CPLUS_MUTEX_CREATE ::log4cplus::thread::createNewMutex()#   define LOG4CPLUS_MUTEX_ASSIGN( mutex_a, mutex_b) mutex_a = mutex_b#   define LOG4CPLUS_MUTEX_LOCK( mutex )  EnterCriticalSection(mutex)#   define LOG4CPLUS_MUTEX_UNLOCK( mutex )  LeaveCriticalSection(mutex)#   define LOG4CPLUS_MUTEX_FREE(mutex) ::log4cplus::thread::deleteMutex(mutex)#   define LOG4CPLUS_THREAD_KEY_TYPE  DWORD#   define LOG4CPLUS_GET_CURRENT_THREAD  GetCurrentThreadId()#   define LOG4CPLUS_GET_CURRENT_THREAD_NAME ::log4cplus::thread::getCurrentThreadName()#   define LOG4CPLUS_THREAD_LOCAL_TYPE DWORD#   define LOG4CPLUS_THREAD_LOCAL_INIT TlsAlloc()#   define LOG4CPLUS_GET_THREAD_LOCAL_VALUE( key ) TlsGetValue(key)#   define LOG4CPLUS_SET_THREAD_LOCAL_VALUE( key, value ) \       TlsSetValue(key, static_cast<LPVOID>(value))#   define LOG4CPLUS_THREAD_LOCAL_CLEANUP( key ) TlsFree(key)namespace log4cplus {    namespace thread {        LOG4CPLUS_EXPORT LOG4CPLUS_MUTEX_PTR_DECLARE createNewMutex();        LOG4CPLUS_EXPORT void deleteMutex(LOG4CPLUS_MUTEX_PTR_DECLARE);    }}#elif defined(LOG4CPLUS_SINGLE_THREADED)#   define LOG4CPLUS_MUTEX_PTR_DECLARE int*#   define LOG4CPLUS_MUTEX_CREATE NULL#   define LOG4CPLUS_MUTEX_ASSIGN( mutex_a, mutex_b) mutex_a = mutex_b;#   define LOG4CPLUS_MUTEX_LOCK( mutex )#   define LOG4CPLUS_MUTEX_UNLOCK( mutex )#   define LOG4CPLUS_MUTEX_FREE(mutex)#   define LOG4CPLUS_THREAD_KEY_TYPE int#   define LOG4CPLUS_GET_CURRENT_THREAD (int)1#   define LOG4CPLUS_GET_CURRENT_THREAD_NAME "single"#   define LOG4CPLUS_THREAD_LOCAL_TYPE void*#   define LOG4CPLUS_THREAD_LOCAL_INIT NULL#   define LOG4CPLUS_GET_THREAD_LOCAL_VALUE( key ) key#   define LOG4CPLUS_SET_THREAD_LOCAL_VALUE( key, value ) key = value;#   define LOG4CPLUS_THREAD_LOCAL_CLEANUP( key ) key = NULL#else#   error "You Must define a Threading model"#endif/** * @def BEGIN_SYNCHRONIZE_ON_MUTEX(mutex) * Begin a block synchronized on a mutex. * * @see END_SYNCHRONIZE_ON_MUTEX * * @def END_SYNCHRONIZE_ON_MUTEX * End a block synchronized on a mutex. * * @see BEGIN_SYNCHRONIZE_ON_MUTEX */#ifndef LOG4CPLUS_SINGLE_THREADED#  define LOG4CPLUS_BEGIN_SYNCHRONIZE_ON_MUTEX( mutex ) \             {::log4cplus::thread::Guard _sync_guard_object(mutex);#else#  define LOG4CPLUS_BEGIN_SYNCHRONIZE_ON_MUTEX( mutex ) {#endif#define LOG4CPLUS_END_SYNCHRONIZE_ON_MUTEX }#endif // LOG4CPLUS_HELPERS_THREAD_CONFIG_HEADER_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -