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

📄 os_pthread.h

📁 ICC means Internet Communication Component,it has many classes and frameworks that help develop netw
💻 H
📖 第 1 页 / 共 2 页
字号:
#  endif#  if !defined(ACE_THR_PRI_OTHER_DEF)#    define ACE_THR_PRI_OTHER_DEF ((ACE_THR_PRI_OTHER_MIN + ACE_THR_PRI_OTHER_MAX)/2)#  endif   // Typedefs to help compatibility with Windows NT and Pthreads.   typedef pthread_t ACE_hthread_t;   typedef pthread_t ACE_thread_t;   // native TSS key type   typedef pthread_key_t ACE_OS_thread_key_t;   // TSS key type to be used by application#  if defined (ACE_HAS_TSS_EMULATION)     typedef u_int ACE_thread_key_t;#  else  /* ! ACE_HAS_TSS_EMULATION */     typedef ACE_OS_thread_key_t ACE_thread_key_t;#  endif /* ! ACE_HAS_TSS_EMULATION */#  if !defined (ACE_LACKS_COND_T)     typedef pthread_mutex_t ACE_mutex_t;     typedef pthread_cond_t ACE_cond_t;     typedef pthread_condattr_t ACE_condattr_t;     typedef pthread_mutexattr_t ACE_mutexattr_t;#  endif /* ! ACE_LACKS_COND_T */   typedef pthread_mutex_t ACE_thread_mutex_t;#  if !defined (PTHREAD_CANCEL_DISABLE)#    define PTHREAD_CANCEL_DISABLE      0#  endif /* PTHREAD_CANCEL_DISABLE */#  if !defined (PTHREAD_CANCEL_ENABLE)#    define PTHREAD_CANCEL_ENABLE       0#  endif /* PTHREAD_CANCEL_ENABLE */#  if !defined (PTHREAD_CANCEL_DEFERRED)#    define PTHREAD_CANCEL_DEFERRED     0#  endif /* PTHREAD_CANCEL_DEFERRED */#  if !defined (PTHREAD_CANCEL_ASYNCHRONOUS)#    define PTHREAD_CANCEL_ASYNCHRONOUS 0#  endif /* PTHREAD_CANCEL_ASYNCHRONOUS */#  define THR_CANCEL_DISABLE      PTHREAD_CANCEL_DISABLE#  define THR_CANCEL_ENABLE       PTHREAD_CANCEL_ENABLE#  define THR_CANCEL_DEFERRED     PTHREAD_CANCEL_DEFERRED#  define THR_CANCEL_ASYNCHRONOUS PTHREAD_CANCEL_ASYNCHRONOUS#  if !defined (PTHREAD_CREATE_JOINABLE)#    if defined (PTHREAD_CREATE_UNDETACHED)#      define PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED#    else#      define PTHREAD_CREATE_JOINABLE 0#    endif /* PTHREAD_CREATE_UNDETACHED */#  endif /* PTHREAD_CREATE_JOINABLE */#  if !defined (PTHREAD_CREATE_DETACHED)#    define PTHREAD_CREATE_DETACHED 1#  endif /* PTHREAD_CREATE_DETACHED */#  if !defined (PTHREAD_PROCESS_PRIVATE) && !defined (ACE_HAS_PTHREAD_PROCESS_ENUM)#    if defined (PTHREAD_MUTEXTYPE_FAST)#      define PTHREAD_PROCESS_PRIVATE PTHREAD_MUTEXTYPE_FAST#    else#      define PTHREAD_PROCESS_PRIVATE 0#    endif /* PTHREAD_MUTEXTYPE_FAST */#  endif /* PTHREAD_PROCESS_PRIVATE */#  if !defined (PTHREAD_PROCESS_SHARED) && !defined (ACE_HAS_PTHREAD_PROCESS_ENUM)#    if defined (PTHREAD_MUTEXTYPE_FAST)#      define PTHREAD_PROCESS_SHARED PTHREAD_MUTEXTYPE_FAST#    else#      define PTHREAD_PROCESS_SHARED 1#    endif /* PTHREAD_MUTEXTYPE_FAST */#  endif /* PTHREAD_PROCESS_SHARED */#  if defined (ACE_HAS_PTHREADS_DRAFT4)#    if defined (PTHREAD_PROCESS_PRIVATE)#      if !defined (USYNC_THREAD)#        define USYNC_THREAD    PTHREAD_PROCESS_PRIVATE#      endif /* ! USYNC_THREAD */#    else#      if !defined (USYNC_THREAD)#        define USYNC_THREAD    MUTEX_NONRECURSIVE_NP#      endif /* ! USYNC_THREAD */#    endif /* PTHREAD_PROCESS_PRIVATE */#    if defined (PTHREAD_PROCESS_SHARED)#      if !defined (USYNC_PROCESS)#        define USYNC_PROCESS   PTHREAD_PROCESS_SHARED#      endif /* ! USYNC_PROCESS */#    else#      if !defined (USYNC_PROCESS)#        define USYNC_PROCESS   MUTEX_NONRECURSIVE_NP#      endif /* ! USYNC_PROCESS */#    endif /* PTHREAD_PROCESS_SHARED */#  elif !defined (ACE_HAS_STHREADS)#    if !defined (USYNC_THREAD)#      define USYNC_THREAD PTHREAD_PROCESS_PRIVATE#    endif /* ! USYNC_THREAD */#      if !defined (USYNC_PROCESS)#        define USYNC_PROCESS PTHREAD_PROCESS_SHARED#      endif /* ! USYNC_PROCESS */#  endif /* ACE_HAS_PTHREADS_DRAFT4 */   /* MM-Graz:  prevent warnings */#  if !defined (UNIXWARE_7_1)#    undef THR_BOUND#    undef THR_NEW_LWP#    undef THR_DETACHED#    undef THR_SUSPENDED#    undef THR_DAEMON#    define THR_BOUND               0x00000001#    define THR_NEW_LWP             0x00000002#    define THR_DETACHED            0x00000040#    define THR_SUSPENDED           0x00000080#    define THR_DAEMON              0x00000100#    define THR_SCHED_FIFO          0x00020000#    define THR_SCHED_RR            0x00040000#    define THR_SCHED_DEFAULT       0x00080000#  endif /* UNIXWARE_7_1 */#  define THR_JOINABLE            0x00010000#  if defined (ACE_HAS_IRIX62_THREADS)#    define THR_SCOPE_SYSTEM        0x00100000#  else#    define THR_SCOPE_SYSTEM        THR_BOUND#  endif /*ACE_HAS_IRIX62_THREADS*/#  define THR_SCOPE_PROCESS       0x00200000#  define THR_INHERIT_SCHED       0x00400000#  define THR_EXPLICIT_SCHED      0x00800000#  define THR_SCHED_IO            0x01000000#  if !defined (ACE_HAS_STHREADS)#    if !defined (ACE_HAS_POSIX_SEM) && !defined (ACE_USES_FIFO_SEM)// This needs to be moved out of here.#include "os/ACE_export.h"/** * @class ACE_sema_t * * @brief This is used to implement semaphores for platforms that support * POSIX pthreads, but do *not* support POSIX semaphores, i.e., * it's a different type than the POSIX <sem_t>. */class ACE_Export ACE_sema_t{public:  /// Serialize access to internal state.  ACE_mutex_t lock_;  /// Block until there are no waiters.  ACE_cond_t count_nonzero_;  /// Count of the semaphore.  u_long count_;  /// Number of threads that have called <ACE_OS::sema_wait>.  u_long waiters_;};#    endif /* !ACE_HAS_POSIX_SEM */#    if defined (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD)       // If we are on Solaris we can just reuse the existing       // implementations of these synchronization types.#      if !defined (ACE_LACKS_RWLOCK_T) && !defined (ACE_HAS_PTHREADS_UNIX98_EXT)#        include /**/ <synch.h>         typedef rwlock_t ACE_rwlock_t;#      endif /* !ACE_LACKS_RWLOCK_T */#        include /**/ <thread.h>#    endif /* (ACE_LACKS_PTHREAD_YIELD) && defined (ACE_HAS_THR_YIELD) */#  else#    if !defined (ACE_HAS_POSIX_SEM)       typedef sema_t ACE_sema_t;#    endif /* !ACE_HAS_POSIX_SEM */#  endif /* !ACE_HAS_STHREADS */#  if defined (ACE_HAS_PTHREADS_UNIX98_EXT)     typedef pthread_rwlock_t ACE_rwlock_t;#   endif /* ACE_HAS_PTHREADS_UNIX98_EXT */#  if defined (__GLIBC__) && ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2))     // glibc 2.2.x or better has pthread_mutex_timedlock()#    ifndef ACE_HAS_MUTEX_TIMEOUTS#      define ACE_HAS_MUTEX_TIMEOUTS#    endif  /* ACE_HAS_MUTEX_TIMEOUTS */     // Use new pthread_attr_setstack if XPG6 support is enabled.#    if defined (_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0) < 600#      define ACE_LACKS_PTHREAD_ATTR_SETSTACK#    endif /* (_XOPEN_SOURCE - 0) < 600 */#    if !defined (_XOPEN_SOURCE) \     || (defined (_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0) < 600)       // pthread_mutex_timedlock() prototype is not visible if _XOPEN_SOURCE       // is not >= 600 (i.e. for XPG6).       extern "C" int pthread_mutex_timedlock (pthread_mutex_t *mutex,                                             const struct timespec * abstime);#    endif  /* _XOPEN_SOURCE && _XOPEN_SOURCE < 600 */#  endif  /* linux && ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) */#elif defined (ACE_HAS_STHREADS)#  if !defined (ACE_THR_PRI_FIFO_MIN)#    define ACE_THR_PRI_FIFO_MIN  (long) 0#  endif /* !ACE_THR_PRI_FIFO_MIN */#  if !defined (ACE_THR_PRI_FIFO_MAX)#    define ACE_THR_PRI_FIFO_MAX  (long) 59#  endif /* !ACE_THR_PRI_FIFO_MAX */#  if !defined (ACE_THR_PRI_RR_MIN)#    define ACE_THR_PRI_RR_MIN    (long) 0#  endif /* !ACE_THR_PRI_RR_MIN */#  if !defined (ACE_THR_PRI_RR_MAX)#    define ACE_THR_PRI_RR_MAX    (long) 59#  endif /* !ACE_THR_PRI_RR_MAX */#  if !defined (ACE_THR_PRI_OTHER_MIN)#    define ACE_THR_PRI_OTHER_MIN (long) 0#  endif /* !ACE_THR_PRI_OTHER_MIN */#  if !defined (ACE_THR_PRI_OTHER_MAX)#    define ACE_THR_PRI_OTHER_MAX (long) 127#  endif /* !ACE_THR_PRI_OTHER_MAX */#endif /* ACE_HAS_PTHREADS */#endif /* ACE_OS_INCLUDE_OS_PTHREAD_H */

⌨️ 快捷键说明

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